【问题标题】:importing vector image (XAML file) into WPF将矢量图像(XAML 文件)导入 WPF
【发布时间】:2018-10-11 16:42:10
【问题描述】:

编辑

使用文件进行编程时,它们需要与代码位于同一文件目录中,以便您可以参考。这就是为什么当你创建一个新项目时通常会有一个资源文件夹。从那里你可以将它导入你的项目并使用它(看看下面的答案如何做到这一点)。

设置

我创建了一个 xaml 文件格式的矢量图像。我使用了 Microsoft 表达式设计 4 并遵循这个问题的指南:Best way to use a vector image in WPF? 这很好,允许我制作我的图像,但是当它创建文件类型时,它把它变成了窗口标记文件(我告诉你这只是在如果这是一个问题,但这不是问题)。我不完全理解问题中的代码在做什么,他们说他们可以将 xaml 文件拖放到窗口中,当我尝试该方法时,我得到的只是错误。

问题

现在我有了想要使用并导入 WPF 文件的图像。最好我想将它直接导入到我在我的窗口上的网格中(这只是你打开新 WPF 时获得的默认设置)但我也看过使用图像框(我不知道如果您可以在图像框中使用 XAML,那么我不知道这是否可能)。两次尝试我都没有成功。所以我不知道是否与文件有关并且没有正确导入它,或者我需要一个子程序来加载它。

【问题讨论】:

    标签: c# wpf image xaml


    【解决方案1】:

    你所拥有的是一个带有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

    【讨论】:

    • 该文件未作为 Visual Studio 的一部分存储。这就是为什么我假设我收到错误:异常:查找资源字典时发生错误。感谢您的快速回复和答复。没有考虑矩形。
    • 然后添加它。或者忘记表达式设计并将简单的形状声明为 Path 元素(其中分配给 Data 属性的 Geometry 也可以存储为 XAML 资源)。
    • 文件在一个驱动器上会影响它吗?这是文件位置:
    • 它应该是项目的一部分,或者是引用程序集的一部分。
    • 我需要将图像与画布之类的东西分开,因为稍后我将拖放它们。人们告诉我的是,当您这样做时,计算机会在每次鼠标移动时尝试渲染图像并且它会严重滞后。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多