C# 画布与父边框重叠
我正在努力解决一个布局问题。My usercontrol包含一个边框,画布作为子对象。 此画布包含一个网格,该网格包含2个画布(1列和2行,颜色不同) 我的问题是网格与他右侧的边界重叠,我不知道为什么。我试图将主画布的ClipToBounds属性设置为“True”,但没有效果 你能帮我吗 问题是: 代码如下:C# 画布与父边框重叠,c#,wpf,xaml,C#,Wpf,Xaml,我正在努力解决一个布局问题。My usercontrol包含一个边框,画布作为子对象。 此画布包含一个网格,该网格包含2个画布(1列和2行,颜色不同) 我的问题是网格与他右侧的边界重叠,我不知道为什么。我试图将主画布的ClipToBounds属性设置为“True”,但没有效果 你能帮我吗 问题是: 代码如下: <Border Name="MainBorder" BorderBrush="Black" BorderThickness="1"> <Canvas Name="
<Border Name="MainBorder" BorderBrush="Black" BorderThickness="1">
<Canvas Name="MainCanvas" Height="30" ClipToBounds="True">
<Grid Width="{Binding ElementName=MainCanvas, Path=ActualWidth}">
<Grid.RowDefinitions>
<RowDefinition Height="5" />
<RowDefinition Height="5" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Canvas Name="CanvasTop" Grid.Row="1" Grid.Column="0" Background="Beige" />
<Canvas Name="CanvasBottom" Grid.Row="0" Grid.Column="0" Background="LightGray" />
</Grid>
</Canvas>
</Border>
感谢您的帮助。我认为是您的Width=“{Binding ElementName=maincavas,Path=ActualWidth}”行导致了这种情况
您可以尝试HorizontalAlignment=“Stretch”而不是width属性吗??这将确保它使用整个宽度。问题解决后,代码中有一个函数以错误的方式调整控件的大小:
public void SetMainCanvasWidth(double size)
{
Width = Math.Max(2, size); // that line was evil. removed it and it runs
MainCanvas.Width = Math.Max(2, size);
}
谢谢您的帮助。不幸的是,布局系统在画布元素内无法工作。很抱歉,您是对的,我只是猜测,我尝试了代码,但无法重现问题。我尝试了您的代码,但没有得到行为描述。这就是你用来制作截图的代码吗?同意Fdooch的说法。发布的代码不会产生这种效果,或者任何像截图一样的远程效果。。。发布的xaml是正确的,没有做任何修改。。。我将调查背后的代码。我确实错过了一些东西。