【问题标题】:Add 'Select All' context menu item to default TextBox menu items将“全选”上下文菜单项添加到默认文本框菜单项
【发布时间】:2015-06-24 00:22:54
【问题描述】:
我的 DataGrid 中的 DataGridTemplateColumn 在 CellEdititngTemplate 中有一个 TextBox,当我的 DatagridCell 处于编辑模式并且用户右键单击它时,我想显示 4 个上下文菜单项(剪切、复制、粘贴、全选)。
我看到 TextBox 控件的默认右键单击上下文菜单仅包含 3 个菜单项:剪切 (Ctrl+X)、复制 (Ctrl+C)、粘贴 (Ctrl+V)。
虽然 Ctrl+A 适用于 TextBox,但没有“全选”上下文菜单项。所以问题是 - 如何在不丢失剪切、复制、粘贴菜单项及其功能的情况下将新的上下文菜单项“全选”添加到 TextBox 上下文菜单中?
【问题讨论】:
标签:
wpf
datagrid
textbox
contextmenu
【解决方案1】:
通常我会在剪贴板项目和全选之间看到一个分隔符。这在 RichTextBox 中对我有用:
<FrameworkElement.ContextMenu>
<ContextMenu>
<MenuItem Command="{x:Static ApplicationCommands.Cut}" />
<MenuItem Command="{x:Static ApplicationCommands.Copy}" />
<MenuItem Command="{x:Static ApplicationCommands.Paste}" />
<Separator />
<MenuItem Command="{x:Static ApplicationCommands.SelectAll}" />
</ContextMenu>
</FrameworkElement.ContextMenu>
【解决方案2】:
我认为您不能更改现有的上下文菜单,但您可以创建自己的上下文菜单并重复其他命令
<ContextMenu>
<MenuItem Command="ApplicationCommands.Cut" />
<MenuItem Command="ApplicationCommands.Copy" />
<MenuItem Command="ApplicationCommands.Paste" />
<MenuItem Command="ApplicationCommands.SelectAll" />
</ContextMenu>