Adorner 装饰器

Adorner是WPF装饰器Decorator的一种,是WPF窗口中独立的一层,能够在不改变原有XAML结构的条件下,提供为每个独立控件,附着其它界面元素或装饰物的手段,支持在界面元素之上执行独立的绘制及用户交互。

Adorner都是放在AdornerLayer的层上,AdornerLayer是置于一个窗口内所有其它控件之上的。其中,

  1. 不是每个控件都有AdornerLayer,其实只有AdornerDecorator和ScrollContentPresenter附带有AdornerLayer。
  2. 对某个element取到的AdornerLayer,一般是其Ancestor的。

查看Window的默认Template,可以看出使用默认Template的Window都会有一个AdornerDecorator为其提供AdornerLayer。所以如果要自定义Window的Template也一定要记得为ContentPresenter加一个AdornerDecorator。

常见功能:

  1. 光标(caret),编辑框控件中光标的显示和选中效果;
  2. 焦点(focus),具有数据焦点的控件所具有的虚线外框;
  3. 高亮(highlight);
  4. 拖拽预览(drag and drop);
  5. 拼写错误提示;
  6. 数据绑定中用来提示错误的ErrorTemplate;

功能扩展:

  1. ListView列头中,表示当前排序方式的小箭头。
  2. 图表中,如果需要每点一下鼠标,可以在图表上留下一个标记。
  3. 程序加载或某个操作进行中时,为整个界面加的蒙版与Processing动画。
  4. 界面设计工具中,用来调节控件大小的锚点。
  5. 放大镜控件中,放大出来的图像。
  6. 鼠标拖出来的选框。

参考链接:
详解Adorner Layer
WPF - Adorner

posted @ 2022-04-19 14:48  wesson2019  阅读(337)  评论(0编辑  收藏  举报