Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在自动设置宽度的网格上画一条中心线?_C#_Wpf - Fatal编程技术网

C# 在自动设置宽度的网格上画一条中心线?

C# 在自动设置宽度的网格上画一条中心线?,c#,wpf,C#,Wpf,我见过几个类似的问题,但没有一个解决方案适合我,可能是因为我的网格设置为Stretch。这是我正在努力实现的结果。基本上,我有一个网格,我想画一条X轴线(就像这个问题末尾的图片) 我的XAML <Grid x:Name="MainGrid" HorizontalAlignment="Stretch" Background="#FF4A70F1"> 我的问题 我希望这条线能够覆盖整个窗口,即使我调整了窗口的大小/最大化了窗口。但是,无论我使用的是ActualSize还是*Render

我见过几个类似的问题,但没有一个解决方案适合我,可能是因为我的网格设置为
Stretch
。这是我正在努力实现的结果。基本上,我有一个网格,我想画一条X轴线(就像这个问题末尾的图片)

我的XAML

<Grid x:Name="MainGrid" HorizontalAlignment="Stretch" Background="#FF4A70F1">
我的问题

我希望这条线能够覆盖整个窗口,即使我调整了窗口的大小/最大化了窗口。但是,无论我使用的是
ActualSize
还是
*RenderSize*
,上面对X2、Y1、Y2的计算都不起作用(所有计算结果都为0,因此没有显示任何行)。有人能指出如何解决这个问题吗?非常感谢。

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

<Grid>
    <Line HorizontalAlignment="Left" VerticalAlignment="Center" Stroke="Black"
          X2="{Binding ActualWidth,
               RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Grid}}"/>
</Grid>


您的代码何时执行?调整窗口大小时,您至少需要调整线条端点,可能是在处理程序中,或者将其x和y值绑定到网格的大小。这在InitializeComponent()之后。但至少我应该在启动时看到一行?否?否,构造函数中的窗口宽度和高度为0。
<Grid>
    <Line HorizontalAlignment="Left" VerticalAlignment="Center" Stroke="Black"
          X2="{Binding ActualWidth,
               RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Grid}}"/>
</Grid>