使用VisualTreeHelper.GetDrawing(Visual v)枚举所有Visual内容的对象

简介: 原文:使用VisualTreeHelper.GetDrawing(Visual v)枚举所有Visual内容的对象 C#代码:public void RetrieveDrawing(Visual v){    DrawingGroup dGroup = VisualTreeHelper.
原文: 使用VisualTreeHelper.GetDrawing(Visual v)枚举所有Visual内容的对象

C#代码:
public void RetrieveDrawing(Visual v)
{
    DrawingGroup dGroup = VisualTreeHelper.GetDrawing(v);
    EnumDrawingGroup(dGroup);
}

public void EnumDrawingGroup(DrawingGroup drawingGroup)
{
     DrawingCollection dc = drawingGroup.Children;

     foreach (Drawing drawing in dc)
     {
         // 如果是DrawingGroup,递归枚举
         if (drawing.GetType() == typeof(DrawingGroup))
         {
             EnumDrawingGroup((DrawingGroup)drawing);
         }
         else if (drawing.GetType() == typeof(GeometryDrawing))
         {
             // 处理代理
         }
         else if (drawing.GetType() == typeof(ImageDrawing))
         {
             // 处理代理
         }
         else if (drawing.GetType() == typeof(GlyphRunDrawing))
         {
             // 处理代理
         }
         else if (drawing.GetType() == typeof(VideoDrawing))
         {
             // 处理代理
         }
     }
}
 由于代码很简单,不赘述.

目录
相关文章
|
10天前
|
C#
基于 C# 编写的 Visual Studio 文件编码显示与修改扩展插件
基于 C# 编写的 Visual Studio 文件编码显示与修改扩展插件
|
5月前
|
安全 编译器 C++
Microsoft Visual C++ Redistributable的作用主要体现以及可以删除吗?
这些是Microsoft Visual C++不同版本的Redistributable安装包,用于32位系统,确保相关应用正常运行。它们提供C++运行时环境,简化部署流程,支持第三方库及框架,并确保应用兼容性。定期更新可修复问题并引入新功能。在空间有限或需解决程序冲突时可考虑删除,但需谨慎操作以防影响应用稳定性和兼容性。删除前请确认无应用依赖,并通过控制面板安全卸载。
321 1
Microsoft Visual C++ Redistributable的作用主要体现以及可以删除吗?
|
C++
Visual Studio Code 设置 doxygen 格式注释
vs code 使用 cschlosser.doxdocgen 插件,设置 doxygen 注释格式
1182 0
Visual Studio Code 设置 doxygen 格式注释
|
XML 数据格式 C++
Visual Studio 2019 设置 doxygen 注释颜色
VS 中如何修改 doxygen 格式注释的颜色
288 0
Visual Studio 2019 设置 doxygen 注释颜色
|
编译器 C++
解决Visual Studio设置C++标准 但是_cplusplus始终为199711
解决Visual Studio设置C++标准 但是_cplusplus始终为199711
512 0
|
编译器 C++
解决visual studio对不安全函数的警告
解决visual studio 对scanf ,strcpy,strcmp等函数的不安全警告报错 可以看到,编译器对scanf进行了报错,原因是说它不安全 编译器自己给了一种解决方案: 使用vs自带的 scanf_s,但是用这个函数,仅仅能够在vs上使用,在其他编译器可能无法使用。
Visual Studio 2010 中的代码约定设置
  软件约定称为代码约定,通过这一约定可以表示代码正常工作所需的正式条件。 如果方法未按预期收到数据或生成的数据不符合预期的后置条件,代码约定将导致代码引发异常。 有关前置条件和后置条件的概述,您可能需要查看我上个月发表的文章 (msdn.microsoft.com/magazine/gg983479)。
719 0
|
C#
WPF:将Office文档、任意类型文件嵌入到EXE可执行文件中
原文:WPF:将Office文档、任意类型文件嵌入到EXE可执行文件中 版权声明:本文为博主原创文章,未经博主允许可以随意转载 https://blog.csdn.net/songqingwei1988/article/details/50259527 RT 可能这个需求比较奇怪 做了一个绿色版应用,最后只生成一个可执行的exe文件,不附带任何dll和其他文件。
1494 0