WPF 鼠标双击命令

本文介绍了如何在WPF中利用MouseBinding在MVVM模式下实现鼠标双击命令,同时探讨了快捷键实现方式和非MVVM模式下使用EventSetter处理鼠标双击事件的方法。

利用MouseBinding实现MVVM模式下的鼠标双击命令

在这里插入图片描述

<ListBox x:Name="cList" MinHeight="50"  ItemsSource="{Binding CateCombinVM.CategoryCombinList}" Grid.Row="0" Grid.ColumnSpan="3">
    
    <ListBox.ItemContainerStyle>
        <Style TargetType="ListBoxItem">
            <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
            <Setter Property="Background" Value="LightPink"/>
        </Style>
    </ListBox.ItemContainerStyle>
    
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal" >
                <StackPanel.InputBindings>
                    <MouseBinding Command="{Binding DataContext.CateCombinVM.LeftDoubleClickCommand, ElementName=WinBZ}"
                           CommandParameter="{Binding ElementName=cList, Path=SelectedItem }"
                           MouseAction="LeftDoubleClick"/>
                
                </StackPanel.InputBindings> 
                <TextBlock Text="{Binding  Path=Name, StringFormat=类型 {0}——}" Margin="5,0,10,0" Foreground="Red"></TextBlock>
                <TextBlock Text="{Binding  Path=Content}" />

            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>


<!---
 <MouseBinding Gesture="LeftDoubleClick" Command="{Binding Edit}" CommandParameter="{Binding ElementName=UsersDataGrid, Path=SelectedItem}" />
--->
 

快捷键实现方式

 WPF快捷键实现主要有自定义快捷键命令和全局快捷键两种方式。

自定义快捷键命令方式是通过KeyBinding为命令绑定快捷键,按键组合可使用“+”进行连接。可以通过Modifiers+Key和Gesture两种方式定义快捷键组合。可以任选其一进行使用,MSDN中建议使用Gesture方式定义以免发生混淆。
  <Window.InputBindings>
        <KeyBinding Modifiers="Control+Alt" Key="Z" Command="{StaticResource CaptureScreen}" />
        <KeyBinding Gesture="Control+Alt+Q" Command="{StaticResource FullScreen}" />
  </Window.InputBindings>

利用EventSetter 实现非MVVM模式的鼠标双击事件

设置响应事件类型 鼠标双击事件:Event=“MouseDoubleClick”
创建路由事件 Handler=“MusicListView_ItemDoubleClick”

<UserControl.Resources>
    <Style x:Key="itemstyle" TargetType="{x:Type ListViewItem}">
        <EventSetter Event="MouseDoubleClick" Handler="HandleDoubleClick" />
    </Style>
</UserControl.Resources>
 
<ListView Name="TrackListView" ItemContainerStyle="{StaticResource itemstyle}">
    <ListView.View>
        <GridView>
            <GridViewColumn Header="Title" Width="100" HeaderTemplate="{StaticResource BlueHeader}" DisplayMemberBinding="{Binding Name}"/>
            <GridViewColumn Header="Artist" Width="100" HeaderTemplate="{StaticResource BlueHeader}" DisplayMemberBinding="{Binding Album.Artist.Name}" />
        </GridView>
    </ListView.View>
</ListView>

事件方法
private void HandleDoubleClick(object sender, MouseButtonEventArgs e)
{
    ...
} 

MouseAction值

MouseAction 字符解释
LeftClick1单击鼠标左键
LeftDoubleClick5双击鼠标左键
MiddleClick3单击鼠标中键
MiddleDoubleClick7双击鼠标中键。
None0不执行任何操作。
RightClick2单击鼠标右键。
RightDoubleClick6双击鼠标右键。
WheelClick4旋转鼠标滚轮。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值