1

我已经看到了几个类似的问题,但没有解决方案适合我,可能是因为我的 Grid 设置为Stretch. 这是我想要达到的结果。基本上,我有一个网格,我想画一条 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,因此没有显示 LINE),无论我使用ActualSize还是 *RenderSize*. 有人可以指出如何解决这个问题吗?谢谢 达到

4

1 回答 1

2

此 XAML 创建一条垂直居中的水平延伸线:

<Grid>
    <Line HorizontalAlignment="Left" VerticalAlignment="Center" Stroke="Black"
          X2="{Binding ActualWidth,
               RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Grid}}"/>
</Grid>
于 2013-05-25T12:51:29.627 回答