控件禁用状态的修改和美化往往容易在项目中被忽视,自定义禁用状态可以给用户更为直观的操作体验。
下面以TabControl为例,自定义禁用状态,首先看看要实现的简单示例效果:
(掌握了自定义的思路和方法,你可以设计出需要的任何效果。)
步骤:
1、编辑TabControl控件模板
2、自定义禁用状态效果
TabControl的模板结构:TemplateTop、TemplateBottom、TemplateLeft、TemplateRight分别定义了TabControl的四种布局。每一种布局都有DisableVisual元素,禁用状态就需要修改这部分元素,这是一个Border控件。
作为演示只修改TemplateTop中的DisableVisual(在实际项目中请修改其他三个以应对不同布局的禁用状态)
按照效果图我们需要定义DisableVisualTop的边框,并添加TextBlock以显示文字
3、在禁用状态中显示自定义的效果
切换到状态面板,选中Disabled状态
将DisabledVisualTop的Visibility属性设为Visible。
设置完成,运行可查看效果。
小结:本实例中我们还可以通过变通的方法来实现,比如使用遮罩层。Silverlight控件的通过状态来控制启用和禁用,所以最佳的实现方式是修改模板并通过状态来控制。