积极答复者
关于PointerExited事件

问题
-
代码如下, 我想接收鼠标离开StackPanel 的消息, 所以添加了代码PointerExited="StackPanel_PointerExited_1", 在调试的时候,我发现每次鼠标离开StackPanel 里面的Rectangle的时候, 都会触发PointerExited消息, 怎么让我能忽略Rectangle的PointerExited消息, 而接收到StackPanel的PointerExited消息呢???
<StackPanel Orientation="Vertical" PointerExited="StackPanel_PointerExited_1"> <Rectangle Fill="#40FFFFFF" Width="40" Height="99" RadiusX="5" RadiusY="5" VerticalAlignment="Top" Margin="0, 2"/> <Rectangle Fill="#40FFFFFF" Width="40" Height="99" RadiusX="5" RadiusY="5" VerticalAlignment="Top" Margin="0, 2"/> <Rectangle Fill="#40FFFFFF" Width="40" Height="99" RadiusX="5" RadiusY="5" VerticalAlignment="Top" Margin="0, 2"/> </StackPanel>
答案
-
那是因为你没有给你的StackPanel指定一个背景,所以他就不响应处理Pointer事件,你至少给他一个透明的背景,显示地写出来。
<StackPanel Width="45" Height="310" Background="Transparent" Orientation="Vertical" PointerExited="StackPanel_PointerExited_1"> <Rectangle Fill="#40FFFFFF" Width="40" Height="99" RadiusX="5" RadiusY="5" VerticalAlignment="Top" Margin="0, 2"/> <Rectangle Fill="#40FFFFFF" Width="40" Height="99" RadiusX="5" RadiusY="5" VerticalAlignment="Top" Margin="0, 2"/> <Rectangle Fill="#40FFFFFF" Width="40" Height="99" RadiusX="5" RadiusY="5" VerticalAlignment="Top" Margin="0, 2"/> </StackPanel>
Bob Bao [MSFT]
MSDN Community Support | Feedback to us
- 已标记为答案 donarlee 2012年8月28日 7:35
全部回复
-
谢谢, 我如你所说添加了Rectangle的PointerExited消息的响应:
private void Rectangle_PointerExited_1(object sender, PointerRoutedEventArgs e)
{
e.Handled = false;
}
e.Handled = false的时候Rectangle和StackPanel 都可以收到PointerExited消息, e.Handled = true的时候Rectangle收的到,StackPanel 就收不到了,
我只想知道鼠标离开StackPanel的事件
- 已编辑 donarlee 2012年8月27日 1:37 修改
-
那是因为你没有给你的StackPanel指定一个背景,所以他就不响应处理Pointer事件,你至少给他一个透明的背景,显示地写出来。
<StackPanel Width="45" Height="310" Background="Transparent" Orientation="Vertical" PointerExited="StackPanel_PointerExited_1"> <Rectangle Fill="#40FFFFFF" Width="40" Height="99" RadiusX="5" RadiusY="5" VerticalAlignment="Top" Margin="0, 2"/> <Rectangle Fill="#40FFFFFF" Width="40" Height="99" RadiusX="5" RadiusY="5" VerticalAlignment="Top" Margin="0, 2"/> <Rectangle Fill="#40FFFFFF" Width="40" Height="99" RadiusX="5" RadiusY="5" VerticalAlignment="Top" Margin="0, 2"/> </StackPanel>
Bob Bao [MSFT]
MSDN Community Support | Feedback to us
- 已标记为答案 donarlee 2012年8月28日 7:35