【问题标题】:How do I bind a MouseClick on a button the same way I did with the Return button?如何像使用 Return 按钮一样绑定鼠标单击按钮?
【发布时间】:2016-01-08 22:46:24
【问题描述】:

在我的 XAML 代码中,我定义了一个按钮:

<Button 
    Content="Enter" 
    FontSize="25" 
    Width="250" 
    Height="50" 
    Command="{Binding ReadyFirst}" 
    IsEnabled="{Binding EnableButton}"
    >
    <Button.InputBindings>
        <KeyBinding 
            Key="Return" 
            Command="{Binding ValidateInsert}" 
            CommandParameter="{Binding ElementName=EnterButton}"
            />
        </Button.InputBindings>
    </Button>

这个按钮被绑定到返回键,这样我就可以在 ViewModel 中用它做一些神奇的事情。

现在我还希望用户能够单击此按钮并执行与返回按钮相同的操作,但不知何故,这不能与返回按钮相同。

这是我的 ViewModel 示例,以防万一。

public System.Windows.Input.ICommand ValidateInsert { 
    get { 
        return new DelegateCommand(OnValidateInsert, CanExecuteRequest); 
    } 
}

private void OnValidateInsert()
{
    m_DVM_Pos = m_DVM_Pos.Replace(',', '.');
    ConvertedDVM_Pos = Convert.ToDouble(m_DVM_Pos);
    EnableLastButton = true;

    m_CanExecuteTestContinue = false;
    FireReady();
    m_CanExecuteTestContinue = true;
}

那么,鼠标左键是否可以与键盘上的 Return 键使用相同的绑定?

【问题讨论】:

    标签: c# wpf xaml


    【解决方案1】:

    添加另一个绑定:

    <MouseBinding Gesture="LeftClick" Command="ValidateInsert" />
    

    这样就变成了:

    <Button Content="Enter" FontSize="25" Width="250" Height="50" Command="{Binding ReadyFirst}" IsEnabled="{Binding EnableButton}">
        <Button.InputBindings>
            <KeyBinding Key="Return" Command="{Binding ValidateInsert}" CommandParameter="{Binding ElementName=EnterButton}"/>
            <MouseBinding Gesture="LeftClick" Command="ValidateInsert" />
        </Button.InputBindings>
    </Button>
    

    【讨论】:

    • 我没想到它会起作用,因为“手势”代码没有自动完成功能,而“键”代码有自动完成功能。但它确实有效,所以谢谢你=)
    • 检查 this page 以获得您的自动完成选项
    • 如果您想执行类似 Control+Click 的操作,也可以:Gesture="Control+LeftClick"
    猜你喜欢
    • 2016-06-12
    • 2021-02-03
    • 2020-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-21
    相关资源
    最近更新 更多