本文介绍: Windows Presentation Foundation (WPF) 提供两种用于在控件接收键盘焦点时更改其视觉外观的并行机制。第一种机制是对应用于控件的样式或模板中的属性(如)使用属性 setter。第二种机制是将一个单独的样式作为属性的值提供;“焦点视觉样式”为绘制于控件顶部的装饰器创建一个单独的可视化树,而不是通过替换来更改控件或其他 UI 元素的可视化树。本主题讨论上述每一种机制的适用情况。
本文内容
Windows Presentation Foundation (WPF) 提供两种用于在控件接收键盘焦点时更改其视觉外观的并行机制。 第一种机制是对应用于控件的样式或模板中的属性(如 IsKeyboardFocused)使用属性 setter。 第二种机制是将一个单独的样式作为 FocusVisualStyle 属性的值提供;“焦点视觉样式”为绘制于控件顶部的装饰器创建一个单独的可视化树,而不是通过替换来更改控件或其他 UI 元素的可视化树。 本主题讨论上述每一种机制的适用情况。
1、焦点视觉样式的用途
焦点视觉样式功能提供一种通用“对象模型”,用于基于任何 UI 元素的键盘导航来引入视觉用户反馈。 即使未向控件应用新模板,或者不知道具体的模板组合,这也是可能的。
但是,正因为焦点视觉样式功能可以在不知道控件模板的情况下工作,所以必须限制可针对使用焦点视觉样式的控件显示的视觉反馈。 此功能实际执行的操作是在控件通过模板进行呈现来创建可视化树时在其上覆盖另一可视化树(装饰器)。 使用一个填写 FocusVisualStyle 属性的样式来定义这一单独的可视化树。
2、默认焦点视觉样式行为
焦点视觉样式仅在焦点操作由键盘启动时才起作用。 任何鼠标操作或者通过编程实现的焦点更改都会禁用焦点视觉样式模式。
控件的主题包括默认焦点视觉样式行为,该焦点视觉样式成为主题中所有控件的焦点视觉样式。 该主题样式由静态键 FocusVisualStyleKey 的值来标识。 当在应用程序级声明自己的焦点视觉样式时,将替换主题中的这一默认样式行为。 或者,如果要定义整个主题,那么应同样使用这个键来为整个主题的默认行为定义样式。
在主题中,默认焦点视觉样式通常非常简单。 下面是一个近似的焦点视觉样式:
3、何时使用焦点视觉样式
4、如何创建焦点视觉样式
5、使用焦点视觉样式的替代方法
5.1 IsKeyboardFocused
5.2 其他焦点属性
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。