如何截取从WPF文本框继承的控件上的text属性?

如何截取从WPF文本框继承的控件上的text属性?,wpf,textbox,dependency-properties,Wpf,Textbox,Dependency Properties,我要做的是截取从TextBox继承的控件上的Text属性的赋值。我希望修改此文本,并将修改后的文本显示在文本框中。我还需要能够返回与读取属性时文本框中显示的内容不同的内容。在Win窗体中,我可以通过重写声明为虚拟的文本属性来实现这一点。显然,依赖属性的情况有点不同。我的一个想法是使用OverridePropertyMetadata让我自己的回调检测属性更改,然后调用使用GetMetadata获得的原始回调。这在合并属性更改的回调时不起作用。我很感兴趣的是,是否有其他方法可以做到这一点,这是特定于

我要做的是截取从TextBox继承的控件上的Text属性的赋值。我希望修改此文本,并将修改后的文本显示在文本框中。我还需要能够返回与读取属性时文本框中显示的内容不同的内容。在Win窗体中,我可以通过重写声明为虚拟的文本属性来实现这一点。显然,依赖属性的情况有点不同。我的一个想法是使用OverridePropertyMetadata让我自己的回调检测属性更改,然后调用使用GetMetadata获得的原始回调。这在合并属性更改的回调时不起作用。我很感兴趣的是,是否有其他方法可以做到这一点,这是特定于此属性的,但我想知道是否有可能“覆盖”一般的依赖属性


我的应用程序是一个格式化的文本框,当文本设置为1000(例如数字格式)时,文本框显示1000,但当您再次读取文本时,返回1000-该框将在内部跟踪未格式化的文本。我设法很容易地在Win表单中实现,但现在正在尝试将其移植到WPF。

我认为
OverridePropertyMetadata
是一种方法,但与其定义一个新的
PropertyChangedCallback
,不如编写一个新的
CorceValueCallback

static object CoerceText(DependencyObject d, object baseValue)
{
    string s = (string)baseValue;

    // Change s to whatever you want
    ...

    return s;
}

我看了更多的例子,发现了这个想法,它适用于写属性时,但我还想覆盖读取属性时返回的值。我将更新我的问题,使之更清楚。我不确定这是否可行——我看到的示例是一个屏蔽文本框——当读取text属性时,您会得到包含屏蔽的值。也许我能做的最好的事情就是介绍另一处房产。