首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用WPF查看框中的多条多段线

使用WPF查看框中的多条多段线
EN

Stack Overflow用户
提问于 2013-07-08 23:16:56
回答 2查看 1.7K关注 0票数 1

我想“画”几个Polyline和一些TextblockLabel在一个Viewbox的WPF。

由于Viewbox只允许一个子元素,所以我尝试将Polylines放在一个Canvas元素中,但没有起作用:

XAML:

代码语言:javascript
代码运行次数:0
运行
复制
<Viewbox Stretch="Uniform">
     <Canvas Margin="10">
        <Polyline 
                        Points="{Binding Path=Points2}"
                        Stroke="Green"
                        StrokeThickness="2" >
        </Polyline>
                    <!-- other Polylines, Textblocks etc.  would go here... -->
    </Canvas>
</Viewbox>

当我使用下面的代码时,Polyline是正确绘制的(即,我只是简单地删除了Canvas):

代码语言:javascript
代码运行次数:0
运行
复制
<Viewbox Stretch="Uniform">
        <Polyline 
                        Points="{Binding Path=Points2}"
                        Stroke="Green"
                        StrokeThickness="2" >
        </Polyline>
</Viewbox>

我想要可视化一些几何属性,比如在一个非常简约的计算机几何程序中,比如geogebra。有些点在下一个版本中应该是可移动的,但这不是必需的。

解决方案:

代码语言:javascript
代码运行次数:0
运行
复制
<Viewbox Stretch="Uniform">
     <Grid>
        <Polyline 
                        Points="{Binding Path=Points2}"
                        Stroke="Green"
                        StrokeThickness="4" >
        </Polyline>
        <Polyline 
                        Points="{Binding Path=Points2}"
                        Stroke="Yellow"
                        StrokeThickness="2" >
        </Polyline>
    </Grid>
</Viewbox>

这会将相同的多边形放在彼此的顶部,即宽绿色多段线顶部的黄色细线。

这个stackoverflow question的答案帮助了我。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-08 23:24:23

画布并不适用于这样的事情,一旦你把你的控件放在画布中,你就会忽略所有的布局。你可以把你的折线放在网格里面,然后用边距来定位它们吗?

代码语言:javascript
代码运行次数:0
运行
复制
<Viewbox Stretch="Uniform">
    <Grid  Margin="10">
        <Polyline 
                    Points="{Binding Path=Points2}"
                    Stroke="Green"
                    StrokeThickness="2" >
        </Polyline>
    </Grid>
</Viewbox>
票数 1
EN

Stack Overflow用户

发布于 2013-07-08 23:55:33

看不到多段线的原因是因为Canvas具有默认的HeightWidth 0。

尝试显式设置HeightWidth

代码语言:javascript
代码运行次数:0
运行
复制
<Viewbox x:Name="ViewBox" Stretch="Uniform">
    <Canvas x:Name="chartCanvas" Margin="10" Height="200" Width="300">
        <Polyline 
                Points="{Binding Path=Points2}"
                Stroke="Green"
                StrokeThickness="2">
        </Polyline>
        <!-- other Polylines, Textblocks etc.  would go here... -->
    </Canvas>
</Viewbox>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17530237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档