从我的命令绑定调用默认的 WPF 文本框粘贴处理程序
Call default WPF Textbox Paste handler from my command binding
我已经声明了一个带有粘贴命令绑定的 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 文本框正常处理粘贴命令?
对文本框调用 Paste() 方法。或者你可以只获取文本并自己设置它——相同的区别。
我已经声明了一个带有粘贴命令绑定的 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 文本框正常处理粘贴命令?
对文本框调用 Paste() 方法。或者你可以只获取文本并自己设置它——相同的区别。