画布儿童和画布边界重叠

时间:2012-09-07 04:10:53

标签: wpf xaml canvas border

我将画布放入网格中。并且网格被放置在边界中。当我在画布上绘制一些项目(例如白线)时,此项目位于边框上,因此边框正在擦除。有谁知道我怎么能避免它?我试图将边距设置为画布,边框的大小比画布的大,但没有任何帮助。

这是我的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>

1 个答案:

答案 0 :(得分:2)

ClipToBounds上的Canvas属性的默认值为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>