【问题标题】:XAML Parse Exception on set image source on buttonXAML Parse Exception on set image source on button
【发布时间】:2015-05-19 05:39:35
【问题描述】:

这是我的XAML 代码

<Button HorizontalAlignment="Left" Margin="185,0,0,0" Width="20" BorderBrush="{x:Null}" ToolTip="Search" Foreground="#FFB9B9B9">
            <Button.Background>
                <ImageBrush Stretch="UniformToFill" ImageSource="../Images/gray-classic-search-icon.png"/>
            </Button.Background>
</Button>

这在运行项目时给了我这个错误:

类型的第一次机会异常 'System.Windows.Markup.XamlParseException' 发生在 PresentationFramework.dll

附加信息:'提供价值 'System.Windows.Baml2006.TypeConverterMarkupExtension' 抛出了一个 例外。'行号“34”和行位置“33”。

这是什么原因造成的,我该如何解决?

【问题讨论】:

    标签: wpf xaml


    【解决方案1】:

    从相对路径加载图像在 WPF 应用程序中不是理想的方法,因为在运行时图像文件需要驻留在正确的相对位置,无论是 ..\Images\ 还是 ..\..\Images\

    您应该将图像文件的 Build Action 设置为 Resource(如图所示 here)并像这样加载它:

    <ImageBrush ImageSource="/Images/gray-classic-search-icon.png" .../>
    

    这是WPF Resource File Pack Uri的缩写:

    <ImageBrush ImageSource="pack://application:,,,/Images/gray-classic-search-icon.png" .../>
    

    【讨论】:

      【解决方案2】:

      修改你的代码

      <Button HorizontalAlignment="Left" Margin="185,0,0,0" Width="20" BorderBrush="{x:Null}" ToolTip="Search" Foreground="#FFB9B9B9">
                  <Button.Background>
                      <ImageBrush Stretch="UniformToFill" ImageSource="../../Images/gray-classic-search-icon.png"/>
                  </Button.Background>
              </Button>
      

      【讨论】:

        猜你喜欢
        • 2017-07-26
        • 2014-10-22
        • 2019-07-12
        • 1970-01-01
        • 1970-01-01
        • 2012-08-02
        • 1970-01-01
        • 2014-09-18
        • 1970-01-01
        相关资源
        最近更新 更多