Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 为什么我的commandbindings只在按钮位于工具栏中时才起作用?_Wpf_Xaml_Routed Commands - Fatal编程技术网

Wpf 为什么我的commandbindings只在按钮位于工具栏中时才起作用?

Wpf 为什么我的commandbindings只在按钮位于工具栏中时才起作用?,wpf,xaml,routed-commands,Wpf,Xaml,Routed Commands,我有一个带有工具栏的窗口,其中包含一些带有命令的按钮。 按钮停止工作,因为我用包含按钮的stackpanel替换了工具栏 在我看来,这不应该有任何区别。按钮仍然设置了Command属性,我在自定义commands类中没有更改任何内容,CommandBinding也仍然相同。它们是通过比按钮更深的网格和用户控件实现的,但只要按钮位于工具栏控件中,它们就可以工作 如果我直接在窗口中实现CommandBinding,它们就可以工作(但这不是我想要的) 以下是代码(节略): 你好 我知道它不会编译,

我有一个带有工具栏的窗口,其中包含一些带有命令的按钮。 按钮停止工作,因为我用包含按钮的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>