c# - 在 WPF 文本框中粘贴事件

标签 c# wpf events textbox

我创建了一个继承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/

相关文章:

c# - 如何在连接事件时转换 EventArgs?

c# - 使用 LINQ 和高度嵌套的 XML 创建类对象

c# - 如何在 DockPanel 中自动调整 TabControl 的大小 - WPF

C# - 在 while 循环中从字典中删除项目

c# - MahApps 使用带时间的 datePicker

wpf - 事件在 WPF 中不起作用

wpf - 如果第一个属性是 "undefined",则绑定(bind)到第二个属性

android - 在没有root的情况下在Android中注入(inject)事件

unit-testing - 使用松露直接测试以太坊事件

c# - 泛化一个类来处理多种类型