我已经看到了几个类似的问题,但没有解决方案对我有用,可能是因为我的网格设置为Stretch
。这是我想要实现的结果。基本上,我有一个网格,我想绘制一个X轴线(如本问题末尾的图片)。
我的XAML
<Grid x:Name="MainGrid" HorizontalAlignment="Stretch" Background="#FF4A70F1">
我的CodeBehind
Line XAxis = new Line();
XAxis.Stroke = System.Windows.Media.Brushes.Black;
XAxis.StrokeThickness = 1;
XAxis.X1 = 0;
XAxis.X2 = MainGrid.RenderSize.Width;
XAxis.Y1 = MainGrid.RenderSize.Height / 2;
XAxis.Y2 = MainGrid.RenderSize.Height / 2;
MainGrid.Children.Add(XAxis);
我的问题
我希望这条线跨越整个窗口,即使我调整窗口大小/最大化。但是,无论我使用ActualSize
还是*RenderSize*
,上面对X2,Y1,Y2的计算都不起作用(全部评估为0,因此显示为NO LINE)。有人可以指出如何解决这个问题吗?谢谢
答案 0 :(得分:2)
此XAML创建一个水平拉伸的垂直居中线:
<Grid>
<Line HorizontalAlignment="Left" VerticalAlignment="Center" Stroke="Black"
X2="{Binding ActualWidth,
RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Grid}}"/>
</Grid>