我制作了一个根据用户输入绘制形状的程序。我现在只能画一个圆圈。当我绘制圆时,其半径基于x
位移,并且不依赖于y
。这意味着我可以制作比可用窗口大小更大的形状。当我这样做时,它会覆盖状态栏,如下所示:
知道如何解决这个问题吗?这是XAML的结构
<DockPanel>
<Menu DockPanel.Dock="Top">
<MenuItem Header="File">
<MenuItem Header="New"></MenuItem>
<MenuItem Header="Open"></MenuItem>
<MenuItem Header="Save"></MenuItem>
<Separator/>
<MenuItem Header="Exit" Click="MenuItem_Click"></MenuItem>
</MenuItem>
</Menu>
<StatusBar x:Name="status" DockPanel.Dock="Bottom" Height="22">
<TextBlock x:Name="statusText"></TextBlock>
</StatusBar>
<DockPanel>
<StackPanel DockPanel.Dock="Left">
<StackPanel.Background>
<SolidColorBrush Color="#EEE"></SolidColorBrush>
</StackPanel.Background>
<Button Padding="3,0" Margin="5" Click="CircleButton_Click">Circle</Button>
</StackPanel>
<Canvas Background="White" x:Name="canvas" MouseLeftButtonDown="CanvasDownHandler" MouseMove="CanvasMoveHandler" MouseLeftButtonUp="CanvasUpHandler">
</Canvas>
</DockPanel>
</DockPanel>
答案 0 :(得分:1)
您应该为画布设置ClipToBounds = true,如下所示:
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
这可以确保画布内的元素不会在画布本身之外绘制
答案 1 :(得分:0)
如果我理解正确,只需更改此行:
<StatusBar x:Name="status" DockPanel.Dock="Bottom" Height="22" Panel.ZIndex="100">
Panel.ZIndex =&#34; 100&#34;是告诉绘画画布顺序的属性。