代码之家  ›  专栏  ›  技术社区  ›  ChrisUK

如何在代码隐藏中设置wpf applicationcommands

  •  1
  • ChrisUK  · 技术社区  · 6 年前

    我知道如何在WPF中设置默认的applicationcommands命令,以便通过contextmenu启用简单的剪切、复制和粘贴操作。但是,我需要能够在代码隐藏中这样做,以便在创建文本框时动态地分配命令。

    如何在下面的代码中重新创建这个非常简单的WPF代码:

    <TextBox x:Name="txtTagName" Style="{StaticResource TextBoxStyle}">
        <TextBox.ContextMenu>
            <ContextMenu Style="{StaticResource DefaultContextMenuStyle}">
                <MenuItem x:Name="cmCut" Header="Cut" Command="ApplicationCommands.Cut" />
                <MenuItem x:Name="cmCopy" Header="Copy" Command="ApplicationCommands.Copy" />
                <MenuItem x:Name="cmPaste" Header="Paste" Command="ApplicationCommands.Paste" />
            </ContextMenu>
        </TextBox.ContextMenu>
    </TextBox>
    
    2 回复  |  直到 6 年前
        1
  •  3
  •   3xGuy    6 年前

    你可以这样做:

    this.cmCut.Command = ApplicationCommands.Cut;
    
        2
  •  2
  •   mm8    6 年前

    如何在后面的代码中重新创建这个非常简单的WPF代码

    类似这样的情况,即通过编程创建 TextBox 和A ContextMenu 并设置与在XAML标记中设置的属性相同的属性:

    TextBox textBox = new TextBox();
    textBox.Style = FindResource("TextBoxStyle") as Style;
    
    ContextMenu cm = new ContextMenu();
    cm.Style = FindResource("DefaultContextMenuStyle") as Style;
    cm.Items.Add(new MenuItem() { Header = "Cut", Command = ApplicationCommands.Cut });
    cm.Items.Add(new MenuItem() { Header = "Copy", Command = ApplicationCommands.Copy });
    cm.Items.Add(new MenuItem() { Header = "Paste", Command = ApplicationCommands.Paste });
    
    textBox.ContextMenu = cm;
    
    推荐文章