Как установить WPF ApplicationCommands в коде позади - PullRequest
0 голосов
/ 02 июля 2018

Я знаю, как устанавливать команды ApplicationCommands по умолчанию в WPF, чтобы включить простые операции вырезания, копирования и вставки через 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 ]

0 голосов
/ 02 июля 2018

Как я могу воссоздать этот очень простой код WPF в коде

Примерно так: вы программно создаете экземпляр TextBox и 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;
0 голосов
/ 02 июля 2018

вы можете сделать что-то вроде:

this.cmCut.Command = ApplicationCommands.Cut;
...