如何整体改变C#TextBox行为?

时间:2015-11-18 14:28:25

标签: c# wpf

我们的应用程序有许多TextBox,我们在适当的时候禁用它们。 (我们将IsEnabled属性设置为false)。我们的客户现在希望TextBoxes的内容不可更改,但可以复制。我们可以将IsReadOnly设置为true,将IsEnabled设置为true来实现此目的。

我真的不想去应用程序中的每个地方,文本框改变状态并旋转这些设置。如何本地化更改,以便我不需要进行大量编辑?基本上,当要设置的值为IsEnabled时,我想做一些几乎等同于重新定义false的设置部分的内容。 (顺便说一句,我们的客户还希望我们做一些其他相关更改,例如在“禁用”文本框时将文本框的背景颜色设置为非默认颜色。)

2 个答案:

答案 0 :(得分:2)

执行此操作的一种方法是创建TextBox的子类,以允许您进行这些类型的更改。但是,这需要您更改应用程序以用控件替换所有出现的<TextBox ...

<myControl:MyTextBox....

这并不能真正解决您不想更改所有代码的问题。

然而,它可以让你做你提到的其他更改 - 更改背景颜色等等(虽然这也可以通过覆盖XAML中的默认样式来实现)。

答案 1 :(得分:0)

我真的不明白你的问题,但我认为最简单的方法是创建一个后台工作者,如果启用/禁用文本框,则会检查if ( MyTextBox.Enabled == false )