我们的应用程序有许多TextBox,我们在适当的时候禁用它们。 (我们将IsEnabled
属性设置为false
)。我们的客户现在希望TextBoxes的内容不可更改,但可以复制。我们可以将IsReadOnly
设置为true
,将IsEnabled
设置为true
来实现此目的。
我真的不想去应用程序中的每个地方,文本框改变状态并旋转这些设置。如何本地化更改,以便我不需要进行大量编辑?基本上,当要设置的值为IsEnabled
时,我想做一些几乎等同于重新定义false
的设置部分的内容。 (顺便说一句,我们的客户还希望我们做一些其他相关更改,例如在“禁用”文本框时将文本框的背景颜色设置为非默认颜色。)
答案 0 :(得分:2)
执行此操作的一种方法是创建TextBox的子类,以允许您进行这些类型的更改。但是,这需要您更改应用程序以用控件替换所有出现的<TextBox ...
:
<myControl:MyTextBox....
这并不能真正解决您不想更改所有代码的问题。
然而,它可以让你做你提到的其他更改 - 更改背景颜色等等(虽然这也可以通过覆盖XAML中的默认样式来实现)。
答案 1 :(得分:0)
我真的不明白你的问题,但我认为最简单的方法是创建一个后台工作者,如果启用/禁用文本框,则会检查if ( MyTextBox.Enabled == false )
。