【问题标题】: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>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-10-20
        • 1970-01-01
        • 2010-10-08
        • 2011-09-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多