2014-01-22 143 views
2

我试图创建一个非常简单的窗口,在Visual Studio 2013中使用ImageBrush背景作为更复杂项目的测试。该图像显示在设计器中,但程序在启动时崩溃。这里的XAML:使用ImageBrush启动时程序崩溃

<Window x:Class="BackgroundTest.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525"> 
    <Grid Name="grid1"> 
     <Grid.Background> 
      <ImageBrush ImageSource="/Images\Koala.jpg" Stretch="Fill"/> 
     </Grid.Background> 
    </Grid> 
</Window> 

而且基本上都是空的C#(就像我说的,只是一个测试):

using System; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Media; 
using System.Windows.Media.Imaging; 

namespace BackgroundTest 
{ 
    /// <summary> 
    /// Interaction logic for MainWindow.xaml 
    /// </summary> 
    public partial class MainWindow : Window 
    { 
     public MainWindow() 
     { 
      InitializeComponent(); 
     } 
    } 
} 

我敢肯定它有事情做与图像刷,如果我删除部分XAML程序将按预期运行一个空白窗口。任何人都可以帮助我获得这个运行?

这里的调试输出: 型“System.Windows.Markup.XamlParseException”的第一次机会异常出现在PresentationFramework.dll

其他信息:System.Windows.Baml2006.TypeConverterMarkupExtension“上提供价值“抛出一个例外。“行号“7”和行位置“14”。

+0

也许是因为图像来源?尝试“/Images/Koala.jpg” – JleruOHeP

+0

我试过了多个图像源,并将图像添加到资源中。没有运气! –

+0

您是否已将文件夹图像和图像添加到项目中?或者他们只是在那里?你有没有尝试像“C:\ Images \ koala.jpg”这样的源代码完整路径? – JleruOHeP

回答

1

Got it!通过右键单击解决方案资源管理器中的解决方案名称 - >属性 - >资源 - >添加资源 - >添加现有文件并选择考拉的图片,将图像添加到程序资源中。我改变了代码的XAML到:

ImageSource="Resources/Koala.jpg" 

以埃里克的意见,我在Solution Explorer上的资源点击,果然画面在那里,我能够生成操作变为资源。之后,它完美的工作,谢谢埃里克!一旦我有足够的声誉,我会尽快检查你的答案。我对堆栈溢出相当陌生。

0

你有一个反斜杠图像源...

假设Images是解决方案中的一个文件夹中的图片来源应该是:

Source="../Images/Koala.jpg" 

甚至更​​好:

Source="pack://application:,,,/Images/Koala.jpg" 
+0

这两个选项仍然会导致崩溃。 –

+0

和Images/Koala.jpg绝对是我的项目中有效的Uri。 –

1

图像的构建操作可能设置为“内容”。改为它是一个资源。

+0

仍会引发相同的异常。 –

+0

虽然这对我来说。必须首先将其添加为资源。谢谢 – Offer