1
我看到过几个类似的问题,但没有解决方案适用于我,可能是因为我的网格设置为Stretch
。这是我想要实现的结果。基本上,我有一个Grid,我想绘制一个X轴线(就像这个问题最后的图片一样)。在宽度自动设置的网格上绘制居中线?
我的XAML
<Grid x:Name="MainGrid" HorizontalAlignment="Stretch" Background="#FF4A70F1">
我隐藏
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);
我的问题
我倒是想此行跨越整个窗口,即使我调整/最大化窗口。但是,上述X2,Y1,Y2的计算不起作用(全部评估为0,因此显示NO LINE),无论我使用的是ActualSize
还是*RenderSize*
。有人可以指出如何解决这个问题吗?谢谢
是你的代码执行时?您至少必须调整窗口大小调整时的行端点,可能是[SizeChanged](http://msdn.microsoft.com/zh-cn/library/system.windows.forms.control.sizechanged.aspx )处理程序,或将它们的x和y值绑定到网格的大小。 – Clemens
这是rightafter的InitializeComponent();但至少我应该在启动时看到一条线?没有? –
不,窗口宽度和高度在构造函数中为0。 – Clemens