Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用几何图形对象删除边距并设置矢量图标的大小_C#_.net_Wpf_Xaml - Fatal编程技术网

C# 使用几何图形对象删除边距并设置矢量图标的大小

C# 使用几何图形对象删除边距并设置矢量图标的大小,c#,.net,wpf,xaml,C#,.net,Wpf,Xaml,我正试图用文件对象及其属性的列表构建一个GridView。其中一个属性是文件支持的现场总线协议的徽标 协议徽标从.png转换为.xaml后,当前UI如下所示: 一个.xaml徽标文件的示例: <?xml version="1.0" encoding="utf-8"?> <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

我正试图用文件对象及其属性的列表构建一个GridView。其中一个属性是文件支持的现场总线协议的徽标

协议徽标从.png转换为.xaml后,当前UI如下所示:

一个.xaml徽标文件的示例:

<?xml version="1.0" encoding="utf-8"?>
    <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
        <DrawingImage x:Key="EtherCAT_design">
            <DrawingImage.Drawing>
                <DrawingGroup>
                    <DrawingGroup.Children>
                        <GeometryDrawing Brush="#FFFEFEFE"
                                         Geometry="F1 M0,601.33335 L0,0 947.33335,0 1894.6667,0 1894.6667,601.33335 1894.6667,1202.6667 947.33335,1202.6667 0,1202.6667 z" />
                        <GeometryDrawing Brush="..."
                                         Geometry="..." />
                        <GeometryDrawing Brush="..."
                                         Geometry="..." />
                        ...
                        ...
                    </DrawingGroup.Children>
                </DrawingGroup>
            </DrawingImage.Drawing>
        </DrawingImage>
    </ResourceDictionary>

...
...
现在,我想删除列表中每个徽标的边距,并使背景透明

我已经尝试过的:

  • 从DrawingGroup中删除第一个GeometryDrawing。子对象为每个图片生成不同的默认大小()
  • 为第一个GeometryDrawing对象的Geometry属性设置另一个值:Geometry=“F1M16,16L0,16 0,0 16,0z”仍会在图片上方留下边距()
  • 在阅读了之后,我仍然不清楚如何定义几何体属性,这样我就不会有任何边距,并且列表上仍然有相同大小的所有图片

显然,第一个几何体是矩形的过度复杂版本
(0,01894.66671202.6667)

假设图标的中心位于“框架”矩形的中心,即大约位于
(947601)
,您可以简单地创建一个位于同一点中心的较小矩形。将其放入透明几何图形中:

<GeometryDrawing Brush="Transparent">
    <GeometryDrawing.Geometry>
        <RectangleGeometry Rect="547,201,800,800"/>
    </GeometryDrawing.Geometry>
</GeometryDrawing>


上面的示例定义了一个800 x 800的矩形,仍然以
(947601)

为中心,实际的图标几何图形是什么样的?请提供一个例子。每个图标中是否有一种以上的颜色?感谢您的澄清。但是我仍然不明白,如果Rect属性的值是“547201800800”,为什么矩形的中心是
(947601)
。这些值是(origin-x,origin-y,width,height)。将宽度/2添加到原点-x,将高度/2添加到原点-y以获得中心。