客户有个需求:窗口中的控件需要有两种模式,只读和可编辑。一开始用了一种最简单的办法来实现,即把整个窗口在只读模式时设为IsEnabled=false, 可编辑模式时设为IsEnabled=true。
这样客户不满意的是,在只读模式控件都是灰色的,可视效果很差。
TextBox有IsReadOnly属性,可以用这个来代替使用IsEnabled,但是窗口中还有Telerik ComboBox等控件,整个窗口的只读、可编辑都是通过窗口控件本身的一个IsEnable来控制的。如果用TextBox的IsReadOnly来控制势必要控制每个单一的TextBox 以及每个其他类型的控件。有没有更简单的办法?
控件模板!只要将TextBox的控件模板做一下小的定制 - 将其Disabled时的效果设为跟ReadOnly时的一样就OK了
将这个自定义模板内嵌在一个自定义样式上,把该样式应用到所有TextBox就可以了。