2017-05-18 7 views
-1

Bitte kann jemand Hilfe sein. Beim Versuch, einen XAML-Code zu kompilieren, bin ich unten auf diese Ausnahme gestoßen.System.Windows.Markup.XamlParseException ist aufgetreten. Microsoft Visual Studio Community 2017

System.Windows.Markup.XamlParseException aufgetreten HResult = 0x80131501 Message = 'Geben Sie Wert auf 'System.Windows.Baml2006.TypeConverterMarkupExtension' eine Ausnahme ausgelöst hat.' Zeilennummer '28' und Zeilenposition '22'. Source = PresentationFramework Stacktrace: bei System.Windows.Markup.WpfXamlLoader.Load (XamlReader XamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object RootObject, XamlObjectWriterSettings Einstellungen, Uri baseUri) bei System.Windows.Markup.WpfXamlLoader.LoadBaml (XamlReader XamlReader, Boolean skipJournaledProperties, Object RootObject, XamlAccessLevel access, Uri baseUri) bei System.Windows.Markup.XamlReader.LoadBaml (Stream Strom, ParserContext ParserContext, Object Mutter, Boolean closeStream) bei System.Windows.Application.LoadComponent (Object Komponente , Uri ResourceLocator) bei XAMLImage.MainWindow.InitializeComponent() in c: \ Benutzer \ Mypc \ Dokumente \ Visual Studio 2017 \ Projekte \ XAMLImage \ XAMLImage \ MainWindow.xaml: Zeile 1

Innere Ausnahme 1: IOException: Ressource 'images/tahoe_01.jpg' kann nicht gefunden werden.

Die Ausnahme trat bei "InitializeComponent()" der C# -Teilklasse des folgenden Codes auf. Unten ist die C# partielle Klasse

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(); 
     } 
    } 
} 

Unterhalb der XAML-Code ist

<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> 

Es gibt eine Wellenlinie unter dem Quell-URL des Bildes und Image URL der ImageBrush Elemente blau ist. Ich schwebe meine Maus über sie, und intellisense sagt: "Datei konnte nicht gefunden werden c: \ Programme (x86) \ Microsoft Visual Studio \ 2017 \ Community \ Common7 \ IDE \ images% 5Cmyfilename.gif" (eine der Dateien ist ein gif, und das andere ist ein png). Ich dachte, dies wäre ein ungewöhnlicher Pfad für die Datei, aber ich fuhr fort und erstellte die URLs auf diesem Pfad, aber die Erwartung, immer noch werfen.

Bitte kann jemand helfen. Bin mit Microsoft Visual Studio Community 2017

Prost

+1

Wenn Sie ImageSource = "Images \ tahoe_01.jpg" schreiben, sollte das Bild in einem Ordner namens Bilder unter Ihrer Lösung sein. Gibt es einen solchen Ordner? – Mishka

+0

@Mishka Danke für Ihre Antwort. Ich habe meine Frage nach deinem Kommentar bearbeitet. Der Pfad lautet Images \ flow5.gif. Ja. Ich habe es meiner Lösung hinzugefügt, immer noch Ausnahme-Werfen. Ich habe es meinem Projekt hinzugefügt (und ich kann die Bilder sehen, im XAML-Designer), immer noch Ausnahme werfen. – Evan

+0

Wenn Sie mit der rechten Maustaste auf Ihre Bilder unter Ihrer Lösung klicken und klicken, um Eigenschaften anzuzeigen, was ist die "Build Action" der Bilder? und was ist der Wert zum Kopieren in Ausgabeverzeichnis? – Mishka

Antwort

0

Mit Hilfe eines guten Menschen in dieser Gemeinde, gelang es mir, das Problem zu lösen. Sie benötigen den Bilderordner als Teil des Projekts. Der Bilderordner muss sich im selben Ordner wie die Codedateien befinden. Diese können Sie erreichen, indem Sie den Bilderordner in den gleichen Ordner wie die Code-Dateien im Windows-Datei-Explorer kopieren und einfügen. Danach konnte ich die Bilder auf meinem Designer sehen. Aber das Projekt weiß immer noch nichts über die Bilder (zumindest während der Kompilierung/Laufzeit). Damit das Projekt den Bilderordner kennt, muss es in das Projekt aufgenommen werden. Diese können Sie erreichen, indem Sie in Visual Studio zum Solution Explorer gehen, in der oberen Leiste befindet sich eine Symbolschaltfläche für "Alle Dateien anzeigen". Nach dem Klicken sollten Sie den Ordner sehen, aber mit geringer Deckkraft. Klicken Sie mit der rechten Maustaste darauf und dann auf "In Projekt einbeziehen".

Verwandte Themen