请有人帮忙。我在尝试编译XAML代码时遇到了以下异常。
发生了System.Windows.Markup.XamlParseException 的HResult = 0x80131501 Message ='提供值'System.Windows.Baml2006.TypeConverterMarkupExtension'引发异常。行号'28'和行位置'22'。 来源= PresentationFramework 堆栈跟踪: 在System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader,IXamlObjectWriterFactory writerFactory,Boolean skipJournaledProperties,Object rootObject,XamlObjectWriterSettings settings,Uri baseUri) 在System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader,Boolean skipJournaledProperties,Object rootObject,XamlAccessLevel accessLevel,Uri baseUri) 在System.Windows.Markup.XamlReader.LoadBaml(Stream stream,ParserContext parserContext,Object parent,Boolean closeStream) 在System.Windows.Application.LoadComponent(对象组件,Uri resourceLocator) 在c:\ users \ mypc \ documents \ visual studio 2017 \ Projects \ XAMLImage \ XAMLImage \ MainWindow.xaml:line 1
中的XAMLImage.MainWindow.InitializeComponent()内部例外1: IOException:找不到资源'images / tahoe_01.jpg'。
异常发生在后面代码的c#partial类的“InitializeComponent()”处。下面是c#partial class
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>
ImageBrush元素的Image和ImageSource URL的源URL下面有一条蓝色波浪线。我将鼠标悬停在它们上面,并且intellisense说“找不到文件'c:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Community \ Common7 \ IDE \ images%5Cmyfilename.gif'”(其中一个文件是一个gif,另一个是png)。我认为这些文件是一个不正常的路径,但我继续创建了该路径上的URL,但是仍在投掷。
请有人帮忙。我正在使用Microsoft Visual Studio社区2017
干杯
答案 0 :(得分:0)
在这些社区的好人的帮助下,我设法解决了这个问题。您需要images文件夹才能成为项目的一部分。 images文件夹需要与代码文件位于同一文件夹中。这些可以通过将图像文件夹复制并粘贴到与Windows文件资源管理器中的代码文件相同的文件夹中来实现。在这之后,我能够看到我的设计师的图像。但该项目仍然不了解图像(至少在编译/运行时)。要让项目了解images文件夹,需要将其包含在项目中。您可以通过在Visual Studio中访问解决方案资源管理器,上方栏中显示“显示所有文件”的图标按钮。单击后,您应该看到该文件夹,但不透明度较低。右键单击它,然后“包含在项目中”。