从我的命令绑定调用默认的WPF文本框粘贴处理程序

时间:2018-03-06 21:23:16

标签: c# wpf commandbinding

我已经声明了一个带有粘贴命令绑定的WPF文本框:

<TextBox x:Name="txtMsg">
    <TextBox.CommandBindings>
        <CommandBinding Command="ApplicationCommands.Paste" Executed="TxtMsg_OnPaste"/>
    </TextBox.CommandBindings>
</TextBox>

我的代码隐藏是

private void TxtMsg_OnPaste(object sender, ExecutedRoutedEventArgs e)
{
    if (Clipboard.ContainsText())
    {
        // Let the textbox paste text its normal way
        // This code is called, but the textbox doesn't paste anything!
        e.Handled = false;
    }
    else
    {
        // My logic for other clipboard formats
        // ...
        e.Handled = true;
    }
}

问题是设置e.Handled = false不会导致文本框粘贴任何内容。剪贴板包含文本时没有粘贴任何内容!

在这种情况下,如何让WPF文本框正常处理粘贴命令?

1 个答案:

答案 0 :(得分:0)

调用TextBox上的Paste()方法。或者您可以获取文本并自己设置 - 相同的区别。