有什麼辦法在WPF中有效地「別名」命令?我的情況是這樣的:我創建了一個應用程序,該應用程序在具有多個定製畫布的圖形編輯器的上下文中使用ApplicationCommands.Delete。這些畫布上的一些控件使用TextBoxes,但問題如下:TextBox不響應ApplicationCommands.Delete,它響應EditorCommands.Delete。有什麼辦法可以乾淨地讓TextBox響應ApplicationCommands.Delete而無需在每個TextBox實例上創建子類或手動設置綁定?有什麼辦法可以在WPF中別名命令嗎?
3
A
回答
2
要回答你的具體問題,我知道沒有辦法導致兩個單獨的路由命令被視爲相同的命令。但是因爲ApplicationCommands.Delete
是一個路由命令,所以在它被傳送到它的目標之後,TextBox
沒有命令綁定,它將開始冒泡。因此,滿足您要求的最簡單的解決方案是在TextBox
到Window
之間的某個位置安裝一個命令綁定,以實現您期望的行爲。
下面是安裝在父Grid
一個處理程序,發送「右邊」命令,在這種情況下將是一個TextBox
的聚焦元素的例子:
<Grid>
<Grid.CommandBindings>
<CommandBinding Command="ApplicationCommands.Delete" CanExecute="CommandBinding_CanExecute" Executed="CommandBinding_Executed"/>
</Grid.CommandBindings>
<DockPanel>
<Menu DockPanel.Dock="Top">
<MenuItem Header="_Edit">
<MenuItem Header="_Delete" Command="ApplicationCommands.Delete"/>
</MenuItem>
</Menu>
<StackPanel>
<TextBox Text="Some text"/>
</StackPanel>
</DockPanel>
</Grid>
和這裏的代碼隱藏:
private void CommandBinding_CanExecute(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = true;
}
private void CommandBinding_Executed(object sender, ExecutedRoutedEventArgs e)
{
EditingCommands.Delete.Execute(null, Keyboard.FocusedElement);
}
相關問題
- 1. 有什麼辦法可以這樣嗎?
- 2. 有什麼辦法可以讓wpf + wcf更快的工作嗎?
- 3. 有什麼辦法可以用ggplot 2來使用Identify命令嗎?
- 4. 有沒有辦法在matlab R2011b中做命令別名?
- 5. 有什麼辦法可以循環變量名嗎?
- 6. 有什麼辦法可以知道調用者類名嗎?
- 7. 有什麼辦法可以強制Java從命名包中識別未命名包?
- 8. 有什麼辦法可以在iPhone中解析微軟excel嗎?
- 9. 有什麼辦法可以在Unix中執行.cmd文件嗎?
- 10. 有什麼辦法可以在HTML中自定義alertbox嗎?
- 11. 有什麼辦法可以在從conatiner div中取出嗎?
- 12. 有什麼辦法可以在sql中使用函數嗎?
- 13. 有什麼辦法可以在datagridview中新增行嗎?
- 14. 有什麼辦法可以在random.randint中使用raw_input變量嗎?
- 15. 有什麼辦法可以區分APL中3.0和3的區別嗎?
- 16. Winforms中的事件和WPF中的命令有什麼區別?
- 17. 有沒有什麼辦法可以清除nodeJs命令提示符?
- 18. 有什麼辦法可以從超類中省略變量嗎?
- 19. 有什麼辦法可以檢測Java中的RTL語言嗎?
- 20. 有什麼辦法可以隱藏表格中的列嗎?
- 21. 有什麼辦法可以像Winforms中的Slider.AutoToolTipPlacement這樣做嗎?
- 22. 有什麼辦法可以限制SmartGwt中SelectItem的選擇嗎?
- 23. 有什麼辦法可以從Ajax UpdatePanel中調試事件嗎?
- 24. 有什麼辦法可以在VS2008 SP1上安裝EF4嗎?
- 25. 我可以在redis-cli上創建別名命令嗎?
- 26. 有什麼辦法可以從父類調用子方法嗎?
- 27. 有什麼辦法可以緩存ASIFormDataRequest?
- 28. 有什麼辦法可以chroot linux filemanager?
- 29. 有什麼辦法可以調用instagram api而不需要訪問令牌嗎
- 30. 有什麼辦法可以在android中設計5級可展開的listview嗎?