我创建了一个继承TextBox
的自定义控件。此自定义控件是一个数字 TextBox
,仅支持数字。
我正在使用 OnPreviewTextInput
检查输入的每个新字符,以查看该字符是否是有效输入。这很好用。但是,如果我将文本粘贴到 TextBox
中,则不会触发 OnPreviewTextInput
。
在 TextBox
中捕获粘贴文本的最佳方法是什么?
另外,当按下退格键时我遇到了一个问题,我不知道这会触发什么事件。 OnPreviewTextInput
未触发!
关于如何在 WPF TextBox
中捕获粘贴文本和退格事件有什么想法吗?
最佳答案
这是我手边的一些代码,以备不时之需。可能对你有帮助。
public Window1()
{
InitializeComponent();
// "tb" is a TextBox
DataObject.AddPastingHandler(tb, OnPaste);
}
private void OnPaste(object sender, DataObjectPastingEventArgs e)
{
var isText = e.SourceDataObject.GetDataPresent(DataFormats.UnicodeText, true);
if (!isText) return;
var text = e.SourceDataObject.GetData(DataFormats.UnicodeText) as string;
...
}
关于c# - 在 WPF 文本框中粘贴事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3061475/