我的网格占据了界面的四分之一。每当有人点击这个网格(或接口的四分之一)时,我想捕获一个事件。我创建了一个stackpanel,并且我设置了PreviewMouseDown按钮,但是当我点击网格空间内的任何地方时,它都没有捕获事件。我在这里做错了什么?
<Grid >
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Grid.RowSpan="3"
Name="sp_activationSpace"
PreviewMouseDown="testing"></StackPanel>
......
答案 0 :(得分:1)
我不知道窗户的其余部分是怎样的,但我通常做的是创建一个通常为白色背景的Rectangle
(我不认为它可以透明但是我不确定在Grid
我想要捕获MouseButtonDown
或PreviewMouseDown
下面。它看起来像这样:
<Grid>
<Rectangle PreviewMouseDown="MyGrid_PreviewMouseDown" Margin="0"/>
<Grid>
<!--your grid-->
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Grid.RowSpan="3"
Name="sp_activationSpace"
PreviewMouseDown="testing"></StackPanel>
......
</Grid>
</Grid>
同样,这是一个简单且功能良好的解决方案,但如果您需要透明度,它可能不适用。我怀疑你只有一个白色(或任何纯色)窗口背景。