【问题标题】:How to implement MenuItem with InputGesture in an Avalonia MVVM Application?如何在 Avalonia MVVM 应用程序中使用 InputGesture 实现 MenuItem?
【发布时间】:2020-07-15 08:28:55
【问题描述】:

我需要一个带有 InputGesture 的菜单,如下图所示:https://github.com/AvaloniaUI/Avalonia/pull/3602

从 Microsoft Visual Studio Community 2019 开始,使用新的 Avalonia MVVM 应用程序, 我尝试在 Visual Studio 中设置 XAML 以实现此目的:

<MenuItem Header="New" InputGesture="CTRL + N" />

这行然后导致错误消息:

Unable to resolve suitable regular or attached property InputGesture on type Avalonia.Controls:Avalonia.Controls.MenuItem

我在这里找到了一个工作示例: https://github.com/AvaloniaUI/XamlControlsGallery

我会尝试根据该示例构建我的解决方案和项目以使其正常工作。 但我更希望能够在使用 Visual Studio 从头开始​​构建的新 Avalonia MVVM 应用程序上实现它。 非常感谢提示。

【问题讨论】:

    标签: c# mvvm avaloniaui avalonia


    【解决方案1】:

    InputGesture0.10.0-preview1 开始可用,但在稳定的0.9.x 分支中不可用。 XamlControlsGallery 正在使用预览版。

    【讨论】:

    • 非常感谢!就是这样。我之前确实为另一个项目安装了 0.10.0-preview1,并认为新项目也是使用此版本创建的,但显然 Visual Studio 扩展仍然使用旧版本进行新项目。
    【解决方案2】:

    目前Avalonia Docs 中没有记录新功能,其他人看到我的发现可能会有用。
    我的目标是创建带有包含数字的快捷方式的菜单(例如Alt+0)。
    在纯 WPF(没有 Avalonia)中,可以将值 "Alt+0" 分配给表示带有快捷方式的菜单的标签。
    然而,在 Avalonia 中,这些值必须对应于 Key.cs 中的 enum Key
    否则,上述示例菜单将显示 Alt+None 而不是 Alt+0,并且命令绑定将无法按预期工作。
    这是一个示例 XAML 行,用于显示菜单并根据需要绑定命令:

    <MenuItem Header="Menu 0" InputGesture="Alt+D0" HotKey="Alt+D0" Command="{Binding Alt0Command}"/>
    

    【讨论】:

      猜你喜欢
      • 2012-07-22
      • 1970-01-01
      • 2011-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-12
      • 2018-04-13
      相关资源
      最近更新 更多