WPFのDecorator 、Adorner和AdornerDecorator

WPFのDecorator 、Adorner和AdornerDecorator

原文:
WPFのDecorator 、Adorner和AdornerDecorator

Decorator 和 Adorner

  它们都有“装饰品”的意思。

  Decorator类负责包装某个UI元素,以提供额外的行为。它有一个类型为UIElement的Child属性,其中含有待包装的内容。Decorator可被用于添加简单的视觉装饰,例如边界(Border),或者更复杂的行为,例如ViewBox,AdornerDecorator,或是InkPresenter。

  当你从Decorator派生新类时,可以暴露一些有用的依赖属性来定制它。例如,Border类暴露它的BorderBrush, BorderThickness,和CornerRadius,它们都会影响包围child content的边界的绘制方式。

  Adorner类

  既然已经有了Decorator为什么还需要Adorner类?因为它们的功能不同。Decorator类用于在child content的外周绘制装饰;Adorner允许你在已经存在的visual元素之上叠加visuals。简单的想法是,它们是另一组交互的visual,提供与主visual交互的额外途径。这看起来比较复杂,但是想想出现在典型图表软件元素中的窗口小部件(widgets),例如调整尺寸的把柄(resizing grips)。那些就是叠加在元素之上的另一个visual,它们装饰并提供额外的功能及交互。通过点击或拖动这些调节尺寸的把柄,用户可以改变其中控件的大小。

  Adorner类和AdornerDecorator一起工作,后者是一个不可见的平面,用于承载adorners。为了成为可视树的一部分,adorners必须有一个容器。AdornerDecorator就是这个容器。

  AdornerDecorator通常被定义在可视树的顶端(如Window Control的ControlTemplate)。这使得所有的adorners都位于窗口内容之上。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101326.html原文链接:https://javaforall.net

(0)
上一篇 2021年6月16日 上午11:00
下一篇 2021年6月16日 下午12:00


相关推荐

  • SuperAgent使用文档

    SuperAgent使用文档SuperAgent 最近在写爬虫 看了下 node 里面有啥关于 ajax 的模块 发现 superagent 这个模块灰常的好用 好东西要和大家分享 话不多说 开始吧 什么是 SuperAgentsu 它是一个强大并且可读性很好的轻量级 ajaxAPI 是一个关于 HTTP 方面的一个库 而且它可以将链式写法玩的出神入化 varsuperagen require

    2026年3月18日
    2
  • siamFC_mfc实现平移的代码

    siamFC_mfc实现平移的代码Toinvestigatetheunderlyingreason,weanalyzetheSiamesenetworkarchitectureandidentifythatthereceptivefieldsizeofneurons,networkstrideandfeaturepaddingarethreeimportantfactorsaff…

    2022年9月30日
    7
  • booth算法

    booth算法booth 算法 1 booth 算法是什么 2 一个关于 Booth 算法的文章 3 一个关于 Booth 算法的文章 4 乘数按三位一组进行划分 5 Radix 4Booth 乘法器 1 booth 算法是什么 将乘数看作从最低位开始的一串二进制数字 Booth 算法的基本思路是 对于具有连续 0 和 1 的组 需要产生的部分积较少 对于乘数中每个 0 仅需要将前面的累加的部分积向右移动一位 举一个简单的例子 比如说计算 00 在这里首先将乘数 00 改写为 0 00000010

    2026年3月20日
    2
  • OkGo的详解

    OkGo的详解一 okgo 的简介该库是封装了 okhttp 的标准 RESTful 风格的网络框架 可以与 RxJava 完美结合 比 Retrofit 更简单易用 支持大文件上传下载 上传进度回调 下载进度回调 表单上传 多文件和多参数一起上传 链式调用 可以自定义返回对象 支持 Https 和自签名证书 支持超时自动重连 支持 cookie 与 session 的自动管理 支持四种缓存模式缓存网络数据 支持 301 302 重定向 扩展了统一的上传管理和下载管理功能 二 okgo 的使用介绍 2 1build gradle 添加依赖

    2026年3月18日
    2
  • artcam浮雕实例教程_artcam2018入门教程

    artcam浮雕实例教程_artcam2018入门教程记录过去,奋斗现在,展望未来(给未来即将结束的工作的’存档’)ArtCAM入门简单教程二、浮雕前言:这不是个很专业的浮雕设计教程,不过是很简单即可实现的入门教程,而更深入的浮雕学习建议查找更全面的网上教程或CAM浮雕书籍。   常用的矢量雕刻,详见:http://blog.sina.com.cn/s/blog_647ef76d0101jgwn.html开始之

    2025年9月15日
    6
  • FutureTask详解

    FutureTask详解FutureTask 介绍一个可取消的异步计算 FutureTask 提供了对 Future 的基本实现 可以调用方法去开始和取消一个计算 可以查询计算是否完成并且获取计算结果 只有当计算完成时才能获取到计算结果 一旦计算完成 计算将不能被重启或者被取消 除非调用 runAndReset 方法 除了实现了 Future 接口以外 FutureTask 还实现了 RunnableFutu 使用 Futu

    2026年3月26日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号