Wpf 为什么我的commandbindings只在按钮位于工具栏中时才起作用?
我有一个带有工具栏的窗口,其中包含一些带有命令的按钮。 按钮停止工作,因为我用包含按钮的stackpanel替换了工具栏 在我看来,这不应该有任何区别。按钮仍然设置了Command属性,我在自定义commands类中没有更改任何内容,CommandBinding也仍然相同。它们是通过比按钮更深的网格和用户控件实现的,但只要按钮位于工具栏控件中,它们就可以工作 如果我直接在窗口中实现CommandBinding,它们就可以工作(但这不是我想要的) 以下是代码(节略):Wpf 为什么我的commandbindings只在按钮位于工具栏中时才起作用?,wpf,xaml,routed-commands,Wpf,Xaml,Routed Commands,我有一个带有工具栏的窗口,其中包含一些带有命令的按钮。 按钮停止工作,因为我用包含按钮的stackpanel替换了工具栏 在我看来,这不应该有任何区别。按钮仍然设置了Command属性,我在自定义commands类中没有更改任何内容,CommandBinding也仍然相同。它们是通过比按钮更深的网格和用户控件实现的,但只要按钮位于工具栏控件中,它们就可以工作 如果我直接在窗口中实现CommandBinding,它们就可以工作(但这不是我想要的) 以下是代码(节略): 你好 我知道它不会编译,
你好
我知道它不会编译,但我必须简化它。当我用我的应用程序将“StackPanel”替换为“ToolBar”时,这项功能就可以正常工作。这是怎么回事?A只将子元素排列成一行,可以水平或垂直定向
而提供了一组命令或控件的容器
那么,如果将StackPanel元素放在工具栏中会发生什么呢
<ToolBar>
<StackPanel>
<Button Command="gui:GuiCommands.Hello">Hello</Button>
</StackPanel>
</ToolBar>
你好
好吧,我想这又是我自己弄明白的(为什么在我发布问题之后总是发生这种情况?)
简短:我需要在StackPanel上设置FocusManager.IsFocusScope=“true”
Long:请参见此问题的答案:
<ToolBar>
<StackPanel>
<Button Command="gui:GuiCommands.Hello">Hello</Button>
</StackPanel>
</ToolBar>