将矢量图像(XAML文件)导入WPF

时间:2018-10-11 16:42:10

标签: c# wpf image xaml

设置

我用xaml文件格式创建了矢量图像。我使用了Microsoft Expression Design 4,并按照以下问题的指导进行操作:Best way to use a vector image in WPF?很好,允许我制作图像,但是当它创建文件类型时,它将其变成了窗口标记文件(我告诉你这以防万一这是一个问题,但这不是问题)。我还问了两次相同的问题,一个是我不完全理解问题中的代码在做什么,两个是他们说可以将xaml文件拖放到窗口中,当我尝试该方法时,我得到的就是错误。(如果我所链接的问题对您有意义,请不要对我讨厌,但是对我来说我不知道​​,这就是为什么我再次询问)

问题

现在,我有了要使用的图像并将其导入到WPF文件中。最好是我想直接将其导入到我在Windows上的网格中(这只是打开新的WPF时获得的默认设置),但我也使用了图像框(我不知道)如果您可以在图像框中使用XAML,那么我不知道这是否可行)。两次尝试都没有成功。因此,我不知道该文件是否与文件有关,是否正确导入,还是我需要一个子例程将其加载到其中。因此,如果任何人都可以以任何方式帮助我导入和显示我的矢量图像(或xaml),都是很棒的方式!

其他信息

这是我图片的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">
    <DrawingBrush x:Key="UnnamedObject0" Stretch="Uniform">
       <DrawingBrush.Drawing>
           <DrawingGroup>
               <DrawingGroup.Children>
                   <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 
 0.697906,0.500015L 0.697906,55.125">
                       <GeometryDrawing.Pen>
                           <Pen LineJoin="Round" Brush="#FF000000"/>
                       </GeometryDrawing.Pen>
                   </GeometryDrawing>
                   <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 
 0.781189,0.999985L 37.2369,0.999985">
                       <GeometryDrawing.Pen>
                        <Pen LineJoin="Round" Brush="#FF000000"/>
                    </GeometryDrawing.Pen>
                </GeometryDrawing>
                <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 
0.5,54.6301L 36.987,54.6301">
                    <GeometryDrawing.Pen>
                        <Pen LineJoin="Round" Brush="#FF000000"/>
                    </GeometryDrawing.Pen>
                </GeometryDrawing>
                <GeometryDrawing Geometry="F1 M 36.5729,0.974045C 
54.3151,0.974045 68.698,12.9784 68.698,27.7865C 68.698,42.5947 
54.3151,54.599 
36.5729,54.599">
                    <GeometryDrawing.Pen>
                        <Pen LineJoin="Round" Brush="#FF000000"/>
                    </GeometryDrawing.Pen>
                </GeometryDrawing>
            </DrawingGroup.Children>
        </DrawingGroup>
      </DrawingBrush.Drawing>
    </DrawingBrush>
  </ResourceDictionary>

我打算在WPF和主窗口中张贴我的代码的图片,但是它们只是默认设置,并且添加了一些我测试用的行代码,这些代码行不通。

如果您想知道图像是什么样的:AND GATE

1 个答案:

答案 0 :(得分:0)

您所拥有的是一个带有DrawingBrush的ResourceDictonary,可以像这样导入(前提是该文件是Visual Studio项目的一部分,并且其Build Action设置为Page):

<Window.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="And gate.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Window.Resources>

并用作UI元素的Background或矩形的Fill

<Rectangle Width="100" Height="100" 
           Fill="{StaticResource UnnamedObject0}"/>

请注意,类似

的简单路径
<Window.Resources>
    <Geometry x:Key="AndGate">M0,2 L5,2 A3,3 1 1 1 5,8 L0,8Z</Geometry>
</Window.Resources>

<Path Width="100" Height="100" Stretch="Uniform" Stroke="Black" StrokeThickness="2"
      Data="{StaticResource AndGate}"/>

将产生类似的输出。

您可能想看看Shapes and Basic Drawing in WPF Overview