考虑带有菜单和一个按钮下面的例子:为什么绑定到按钮的命令与绑定菜单项的命令有不同的行为?
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<DockPanel>
<Menu DockPanel.Dock="Top">
<MenuItem Header="Paste" Command="ApplicationCommands.Paste" />
</Menu>
<Button Command="ApplicationCommands.Paste">Paste</Button>
<TextBox>Content</TextBox>
<TextBox>Content2</TextBox>
</DockPanel>
</Window>
当我把键盘焦点中的一个文本框,文本框宣称它可以处理ApplicationCommands.Paste
,所以我希望按钮和菜单项目来启用自己。我得到的是菜单项启用自己,而按钮则不启用。 (该按钮似乎不是“收听”TextBox
'CommandBinding
)
这是怎么回事,有什么办法可以解决这个问题吗?
编辑:我确实发现了这个问题 - >WPF routed command enabling works with menu but not with a button < - 但这不适合在这种情况下。该按钮不应该是键盘可调焦的,并将其设置为焦点范围使其可以聚焦。我无法绑定源,因为实际源需要通过键盘焦点进行控制。
如果它在工具栏中工作,必须有ToolBar正在做的事情来实现这一点,这在其他地方可以轻松完成。 –
设置IsFocusScope在这种减少的情况下工作,但不是一般情况。此外,它使按钮可以用键盘调焦,这在这里是不可取的。 –