本文介绍如何在 WPF 使用 Clip 裁剪元素

在 WPF 的 UIElement 提供了 Clip 属性,这个属性默认是空,但是如果设置了这个属性就会对元素进行裁剪

这个属性是一个 Geometry 属性,设置的值表示裁剪之后剩下的部分,如写一个简单的类继承 UIElement 然后对他进行裁剪

    class SisdecereYipuVayderyecallMawqere : UIElement
{
/// <inheritdoc />
public SisdecereYipuVayderyecallMawqere()
{
} /// <inheritdoc />
protected override void OnRender(DrawingContext drawingContext)
{
drawingContext.DrawRectangle(Brushes.Black,null,new Rect(10,10,100,100));
}
}

现在这个类会在 10,10 的坐标画出大小是 100 的矩形

对他裁剪,设置裁剪的是矩形裁剪

        public SisdecereYipuVayderyecallMawqere()
{
Clip = new RectangleGeometry(new Rect(30, 30, 50, 50));
}

从图片很难看出来不同,只是可以看到两个矩形,第一个矩形比较大

对他进行圆形裁剪

        public SisdecereYipuVayderyecallMawqere()
{
Clip = new EllipseGeometry(new Point(30, 30), 10, 10);
}

可以看到显示的是圆形

因为设置 Clip 属性是一个裁剪的窗口,只有在裁剪区域之内才可以显示

因为 Geometry 是可以做到不连续的,所以可以做出部分的透明,如裁剪两个矩形

        public SisdecereYipuVayderyecallMawqere()
{
Geometry geometry = new RectangleGeometry(new Rect(10,10,10,10));
geometry = Geometry.Combine(geometry, new RectangleGeometry(new Rect(30, 30, 10, 10)),
GeometryCombineMode.Union, null); Clip = geometry;
}

WPF 通过 DrawingContext DrawImage 绘制图片


本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

最新文章

  1. struts-标签
  2. 简单的方式优化mysql
  3. tomcat &lt;context path&gt;的意义及作用
  4. AlwaysOn可用性组测试环境安装与配置(二)--AlwaysOn配置(界面与T-SQL)
  5. C#之属性
  6. 第十二篇 Integration Services:高级日志记录
  7. MySQL之选择字段数据类型
  8. 怎么将java项目打包成双击就可以运行的jar包---fatjar
  9. Asp.Net统一前后端提示信息方案
  10. SharpZipLib.dll 压缩文件,可以应用于MVC, webform. C# windows application 等等地方
  11. Win7_x64_Oracle 安装 PL/SQL Developer
  12. Oracle 11G Client 安装就可以用上Oracle11G啦,不用傻傻的安装2G多的Oracle啦,安装特别简单,使用起来更简单
  13. poj 3904(莫比乌斯反演)
  14. MySQL数据库Inception工具学习与测试 笔记
  15. 2019.03.11 COGS2652 秘术(天文密葬法)(分数规划+长链剖分)
  16. [leetcode268]Missing Number
  17. .net DBHelper
  18. 我从Angular 2转向Vue.js, 也没有选择React
  19. python自动化开发-6-面向对象编程
  20. 【EOJ Monthly 2018.7】【D数蝌蚪】

热门文章

  1. Maple拥有优秀的符号计算和数值计算能力
  2. Pycurl介绍
  3. ABP 重写主键ID 多表查询ID无效
  4. 使用 VSCODE 在 Windows 10 WSL 中远程开发
  5. SDUT_2502:火星计数法
  6. [React Native]StatusBar的使用
  7. 创建ROS 工作空间时出现:程序“catkin_init_workspace”尚未安装,程序“catkin_make”尚未安装。
  8. hdu 2662 Coin
  9. H3C 错误提示信息
  10. 神经网络入门——8XOR感知器