2017-05-18 85 views
-1

請有人可以幫忙。我在嘗試編譯XAML代碼時遇到下面的異常。發生System.Windows.Markup.XamlParseException。微軟視覺工作室社區2017

System.Windows.Markup.XamlParseException發生 的HResult = 0x80131501 消息= System.Windows.Baml2006.TypeConverterMarkupExtension '上提供值 '' 引發了異常。'行號「28」和行位置「22」。 源= PresentationFramework 堆棧跟蹤: 在System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader,IXamlObjectWriterFactory writerFactory,布爾skipJournaledProperties,對象rootObject,XamlObjectWriterSettings設置,烏里基本URI) 在System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader (對象父組件,布爾closeStream) 對象組件對象組件對象組件對象組件對象組件對象組件對象組件對象組件對象組件,Uri resourceLocator) at c:\ users \ mypc \ documents \ visual studio 2017 \ Projects \ XAMLImage \ XAMLImage \ MainWindow.xaml中的XAMLImage.MainWindow.InitializeComponent():行1

內部異常1: IOException:找不到資源'images/tahoe_01.jpg'。

後面的代碼的c#部分類的「InitializeComponent()」發生異常。下面是C#局部類

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Data; 
using System.Windows.Documents; 
using System.Windows.Input; 
using System.Windows.Media; 
using System.Windows.Media.Imaging; 
using System.Windows.Navigation; 
using System.Windows.Shapes; 

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

下面是XAML代碼

<Window x:Class="XAMLImage.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:local="clr-namespace:XAMLImage" 
     mc:Ignorable="d" 
     Title="MainWindow" Height="350" Width="604"> 
    <Grid> 
     <Grid.RowDefinitions> 
      <RowDefinition Height = "1*"/> 
      <RowDefinition Height = "1*"/> 
     </Grid.RowDefinitions> 

     <StackPanel Orientation="Horizontal"> 
      <Image Width = "200" VerticalAlignment = "Top" Margin = "30"/> 
      <Image Width = "200" Source = "Images\flow5.gif" 
      VerticalAlignment = "Top" Margin = "30" Opacity = "0.5"/> 
     </StackPanel> 

     <StackPanel Grid.Row = "1"> 
      <Ellipse Height = "100" 
      Width = "200" 
      HorizontalAlignment = "Center" 
      Margin = "30"> 

       <Ellipse.Fill> 
        <ImageBrush ImageSource = "Images\bubble.png" /> 
       </Ellipse.Fill> 

      </Ellipse> 



     </StackPanel> 
    </Grid> 
</Window> 

有下圖像的源URL和URL的ImageSource的圖像刷元件的藍色波浪線。我將鼠標懸停在上面,intellisense說「找不到文件」c:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Community \ Common7 \ IDE \ images%5Cmyfilename.gif'「(其中一個文件是一個gif,另一個是png)。我認爲這些文件的位置是一個不確定的路徑,但是我繼續創建了這條路徑上的URL,但是仍然會拋出異常。

請有人可以幫忙。我使用Microsoft Visual Studio 2017年社區

乾杯

+1

如果您編寫ImageSource =「Images \ tahoe_01.jpg」,則該圖像應位於解決方案下名爲Images的文件夾中。有一個這樣的文件夾嗎? – Mishka

+0

@Mishka感謝您的回覆。我在你的評論後編輯了我的問題。路徑是Images \ flow5.gif。是。我將它添加到我的解決方案中,仍然是異常拋出。我將它添加到我的項目中(我可以在XAML設計器中看到圖像),但仍然是異常拋出。 – Evan

+0

右鍵單擊解決方案下的圖像,然後單擊以查看屬性,圖像的「構建動作」是什麼? 「複製到輸出目錄」的值是什麼? – Mishka

回答

0

有了一個很好的人在這些社區的幫助下,我設法解決這個問題。您需要將圖像文件夾作爲項目的一部分。 images文件夾需要與代碼文件位於同一個文件夾中。這些可以通過在Windows文件瀏覽器中將圖像文件夾複製並粘貼到與代碼文件相同的文件夾中來實現。之後,我可以看到我的設計師的圖像。但該項目仍然不知道圖像(至少在編譯/運行時)。爲了讓項目瞭解圖像文件夾,它需要包含在項目中。這些可以通過在Visual Studio中進入解決方案資源管理器來實現,上方有一個用於顯示所有文件的圖標按鈕。點擊後,您應該看到文件夾,但不透明度較低。右鍵單擊它,然後「包含在項目中」。