考慮帶有菜單和一個按鈕下面的例子:爲什麼綁定到按鈕的命令與綁定菜單項的命令有不同的行爲?
<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在這種減少的情況下工作,但不是一般情況。此外,它使按鈕可以用鍵盤調焦,這在這裏是不可取的。 –