为什么WPF边框控件没有moused双击事件?我有一个ItemsControl,其中包含一些DataTemplate的布局内容.我想处理双击事件以弹出详细信息对话框,但边框(我的布局容器)似乎没有公开事件.
有关如何获得双击事件或重做xaml以使其成为可能的任何建议?
Jas*_*ter 50
只需使用InputBindings.
<Border>
<Border.InputBindings>
<MouseBinding MouseAction="LeftDoubleClick" Command="..."/>
</Border.InputBindings>
</Border>
Run Code Online (Sandbox Code Playgroud)
一般来说; 如果不在WPF中开发控件,请避免使用事件.通常,基于代码的事件的使用是MVVM模式中断的强烈指示.
Joh*_*wen 16
MouseDoubleClick在Control上声明,因此您只需要在ItemTemplate中使用某个Control的实例.最简单的方法是使用没有任何其他行为的基类Control类,只需给它一个自定义模板,其中包含ItemTemplate中的内容.
<ItemsControl>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Control MouseDoubleClick="Control_MouseDoubleClick">
<Control.Template>
<ControlTemplate>
<Border>
<!--Other ItemTemplate stuff-->
</Border>
</ControlTemplate>
</Control.Template>
</Control>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Run Code Online (Sandbox Code Playgroud)
更新:对不起,我的坏时光
在鼠标按钮事件内,获取ClickCount
// e.Handled = true; optional
if (e.ClickCount > 1)
{
// here comes double click and more :)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15590 次 |
| 最近记录: |