考虑以下带有菜单和按钮的示例:
<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>
当我将键盘焦点放在其中一个文本框中时,TextBox 声明它可以处理ApplicationCommands.Paste
,因此我希望按钮和菜单项能够自行启用。相反,我得到的是菜单项自己启用,而按钮没有。(该按钮似乎没有“听”到TextBox
' CommandBinding
)
这是怎么回事,有什么办法可以解决这个问题吗?
编辑:我确实发现了这个问题--> WPF 路由命令启用适用于菜单,但不适用于按钮<--但这不适合这种情况。该按钮不应该是键盘可聚焦的,并且将其设置为焦点范围使其可聚焦。我无法绑定源,因为实际源需要通过键盘焦点控制。