gpt4 book ai didi

wpf - WPF 与 Caliburn Micro 的按键绑定(bind)

转载 作者:行者123 更新时间:2023-12-02 20:30:37 24 4
gpt4 key购买 nike

我有一个带有 TabControl 的窗口。我有一个 TabItem 我设置:

Visibility="{Binding IsVisible}

我还将其添加到窗口的 XAML 中:

<Window.InputBindings>
<KeyBinding Modifiers="Ctrl"
Key="H"
Command="{Binding ToggleHiddenTab}" />
</Window.InputBindings>

我将此方法添加到 ViewModel 中。

public void ToggleHiddenTab()
{
if (IsVisible == Visibility.Visible)
{
IsVisible = Visibility.Hidden;
NotifyOfPropertyChange(() => IsVisible);
}
else
{
IsVisible = Visibility.Visible;
NotifyOfPropertyChange(() => IsVisible);
}
}

以及完整的属性:

private Visibility _isVisible;
public Visibility IsVisible
{
get { return _isVisible; }
set {
_isVisible = value;
NotifyOfPropertyChange(() => IsVisible);
}
}

当我按 CTRL+h 时,什么也没有发生。为了测试功能,我添加了一个测试按钮:

<Button x:Name="ToggleHiddenTab" Content="Test Visible" 
Grid.Column="0" Margin="20,8,20,8">
<Button.Resources>
<Style TargetType="{x:Type Border}">
<Setter Property="CornerRadius" Value="5"/>
</Style>
</Button.Resources>
</Button>

当我单击按钮时,隐藏选项卡会更改其可见性。为什么 ctrl+h 键不被接受?

--------------------- 编辑------------------------- ------------------根据我添加的下面的答案:

cal:Message.Attach="[Gesture Ctrl+H] = [ToggleHiddenTab]"

然后编辑器遇到“cal:”的“命名空间未定义”错误,快速谷歌搜索建议添加到窗口标签:

xmlns:cal="clr-namespace:Caliburn.Micro;assembly=Caliburn.Micro.Platform"

这仍然没有按照建议工作。

最佳答案

ToggleHiddenTab 不是命令,而是方法。

但是您应该能够使用 cal:Message.Attach 附加属性来连接键绑定(bind):

<Window ... cal:Message.Attach="[Gesture Ctrl+H] = [ToggleHiddenTab]">

关于wpf - WPF 与 Caliburn Micro 的按键绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48864081/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com