我的DataTemplate
样子是这样的:
<DataTemplate x:Key="ItemTemplate">
<StackPanel MouseLeftButtonDown="StackPanel_MouseLeftButtonDown">
但是我无法按下鼠标左键。如果我将模板的背景设置为某种颜色,就可以了。
如何创建透明DataTemplate
并捕捉MouseLefButtonDown
事件?
谢谢你。
我的DataTemplate
样子是这样的:
<DataTemplate x:Key="ItemTemplate">
<StackPanel MouseLeftButtonDown="StackPanel_MouseLeftButtonDown">
但是我无法按下鼠标左键。如果我将模板的背景设置为某种颜色,就可以了。
如何创建透明DataTemplate
并捕捉MouseLefButtonDown
事件?
谢谢你。
如果您想在 StackPanel 本身上捕获鼠标事件,您只需将其背景画笔设置为透明:
<StackPanel MouseLeftButtonDown="StackPanel_MouseLeftButtonDown"
Background="Transparent" Height="400" Width="400" >
<Button Content="dfsdf"/>
MouseLeftButtonDown
是一个冒泡事件。这意味着它首先在最深的可能级别触发,然后通过逻辑树向上“冒泡”。如果您StackPanel
正在处理的内容中包含内容MouseLeftButtonDown
,那么您将永远不会看到事件向上冒泡,因此它永远不会到达您的StackPanel
.
PreviewMouseLeftButtonDown
,另一方面,是一个隧道事件。这意味着它将首先在顶级容器中触发,然后通过逻辑树向下“隧道”直到到达最低级别。尝试将您的活动更改为:
<StackPanel PreviewMouseLeftButtonDown="StackPanel_PreviewMouseLeftButtonDown">
然后看看你能不能抓住它。