Posted at

ApplicationCommands.DeleteはTextBoxに対応していない

ApplicationCommands.Deleteを実行してもTextBoxの内容は削除できない。(カット、コピー、ペースト、アンドゥ、リドゥは問題ない。)かわりにEditingCommands.Deleteを使う。

ただし、EditingCommands.Deleteをメニューアイテムに指定した場合、InputGestureTextが表示されない。(表示されないだけで、キー入力自体は有効。)


XAML

<Window x:Class="Sample.MainView"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Sample"
Title="MainView" Height="300" Width="300">
<Grid>
<Menu>
<MenuItem Header="編集">
<MenuItem Header="元に戻す" Command="ApplicationCommands.Undo"/>
<MenuItem Header="やり直し" Command="ApplicationCommands.Redo"/>
<MenuItem Header="切り取り" Command="ApplicationCommands.Cut"/>
<MenuItem Header="コピー" Command="ApplicationCommands.Copy"/>
<MenuItem Header="貼り付け" Command="ApplicationCommands.Paste"/>
<!--InputGestureTextを指定する-->
<MenuItem Header="削除" Command="EditingCommands.Delete" InputGestureText="Delete"/>
</MenuItem>
</Menu>
</Grid>
</Window>