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>