【问题标题】:Canvas's children and canvas's border overlap画布子项和画布边框重叠
【发布时间】:2012-10-05 00:24:56
【问题描述】:
我有一个放在网格中的画布。并且网格被放置在边框中。当我在画布上绘制一些项目(例如白线)时,该项目位于边框上方,因此边框正在擦除。有谁知道我怎样才能避免它?我尝试为画布设置边距,边框的大小比画布的大,但没有任何帮助。
这是我的 xaml:
<Border BorderThickness="1" BorderBrush="#333333" Opacity="1" Name="inner_canvas_border">
<Grid Name="grid1">
<Canvas Name="Canvas1"HorizontalAlignment="Center" VerticalAlignment="Center" Width="700" Height="450" />
</Grid>
</Border>
【问题讨论】:
标签:
wpf
xaml
canvas
border
【解决方案1】:
Canvas 上的ClipToBounds 属性的默认值为 false。将此设置为 true,这将防止在Canvas 范围之外的元素显示在Canvas 范围之外:
<Border
BorderThickness="1"
BorderBrush="#333333"
Opacity="1"
Name="inner_canvas_border">
<Grid
Name="grid1">
<Canvas
Name="Canvas1"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Width="700"
Height="450"
ClipToBounds="True" /><!-- This line here -->
</Grid>
</Border>