2011-04-08 75 views
9

我想在我的WPF应用程序中使用图标,并为其他事物使用一些图标,但是我一直从设计器视图中收到错误,例如“path-x不是有效资源或无法找到。“ - 其中“path-x”是我尝试使用的任何图像的路径。使用WPF中的图像和图标

如果正在寻找在正确的地方,我敢打赌,它会发现它;)

,但随后,它决定给不给我这个错误了。所以,我继续点击Run(F5),在标题栏中看到我的新图标。只有与此兽对质:

“System.Windows.Markup.XamlParseException 发生消息= System.Windows.Baml2006.TypeConverterMarkupExtension‘上 提供价值' 引发了异常。’行号 '5' 和 线位置 '50'
源= PresentationFramework
LineNumber上= 5 LinePosition = 50
堆栈跟踪: 在System.Windows.Markup.XamlReader.RewrapException(例外 E,IXamlLineInfo lineInfo,乌里 基本URI) 在System.Windows.Markup.WpfXamlLoader.Load(xamlReader xamlReader,IXamlObjectWriterFactory writerFactory,布尔 skipJournaledProperties,对象 rootObject,XamlObjectWriterSettings 设置,乌里基本URI) 在System.Windows.Markup.WpfXamlLoader.L oadBaml(XamlReader xamlReader,布尔 skipJournaledProperties,对象 rootObject,XamlAccessLevel ACCESSLEVEL,乌里基本URI) 在System.Windows.Markup.XamlReader.LoadBaml(流 流,ParserContext parserContext, 对象的父,布尔closeStream) 在系统.Windows.Application.LoadComponent(对象 组件,乌里resourceLocator) 在One_Stop_Management.MainWindow.InitializeComponent() 在C:\用户\杰森\文档\ 2010的Visual Studio的 \项目\一站式 管理\一站式 管理\ MainWindow.xaml:第1行 在O C:\ Users \ Jason \ Documents \ Visual Studio 2010 \ Projects \ One Stop Management \ One Stop Management \ MainWindow.xaml.cs:line 25 InnerException:System.IO .IOException Message =找不到资源'images/favicon.ico'。 源= PresentationFramework 堆栈跟踪: 在MS.Internal.AppModel.ResourcePart.GetStreamCore(的FileMode 模式,FileAccess的访问) 在System.IO.Packaging.PackagePart.GetStream(的FileMode 模式,FileAccess的访问) 在System.IO .Packaging.PackWebResponse.CachedResponse.GetResponseStream() 在System.IO.Packaging.PackWebResponse.GetResponseStream() 在System.IO.Packaging.PackWebResponse.get_ContentType() 在System.Windows.Media.Imaging.BitmapDecoder。SetupDecoderFromUriOrStream(URI URI,流流,BitmapCacheOption cacheOption,的Guid & CLSID,布尔& isOriginalWritable,流& uriStream, UnmanagedMemoryStream & unmanagedMemoryStream,SafeFileHandle & safeFilehandle) 在System.Windows.Media.Imaging.BitmapDecoder.CreateFromUriOrStream (Uri baseUri,Uri uri,Stream stream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, RequestCachePolicy uriCachePolicy, Boolean insertInDecoderCa CHE) 在System.Windows.Media.Imaging.BitmapFrame.CreateFromUriOrStream(URI 基本URI,URI的Uri,流流, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, RequestCachePolicy uriCachePolicy) 在System.Windows.Media.ImageSourceConverter.ConvertFrom( ITypeDescriptorContext 方面,CultureInfo的文化,对象 值) 在System.Windows.Baml2006.TypeConverterMarkupExtension.ProvideValue(IServiceProvider的 的ServiceProvider) 在MS.Internal.Xaml.Runtime.ClrObjectRuntime.CallProvideValue(的MarkupExtension 我的IServiceProvider的ServiceProvider) 的InnerException :“

Exception at runtime while trying to use an icon for my titlebar!

为什么这件事情给我的态度?我只是想插入图片...

更新

下面是制作的图标,当我试图使用添加图标的属性面板的XAML:

<Fluent:RibbonWindow x:Class="One_Stop_Management.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:Fluent="clr-namespace:Fluent;assembly=Fluent" 
     Title="One Stop Management" Height="727" Width="1208" Icon="Resources\favicon.ico"> 

最新

enter image description here

我甚至不能添加使用属性窗格中的图标,下面是它给我的错误。

+0

你可以分享试图插入图像的XAML吗? – 2011-04-08 23:47:17

+0

是的。我现在正在更新。 – 2011-04-08 23:57:35

+0

@Craig,将其添加到问题的底部。谢谢。 – 2011-04-08 23:59:22

回答

1

对不起,我不能更有帮助。在开始阅读你的问题时,我认为它只是一种类型不匹配,就像你在指定一个字符串时,它的意图是一个图像。这个问题似乎有多种可能的解决方案。我将把你链接到Microsoft Connect page that has them on it,而不是将它们全部列出。

+2

虽然这是一个古老的线程,我想补充我的发现。事实证明,XP可以正确处理带有32位色深的256x256的图标。从ico中删除此图像格式后,异常不会再发生。 – saamorim 2013-09-20 10:34:23

+0

克雷格的链接已经死亡 – 2015-05-29 20:24:57

1

例外,如果你读通过它,说同样的事情:

的InnerException信息:System.IO.IOException消息=无法找到资源 '图像/ favicon.ico的'。

这可能是因为Images/favicon.ico图标图像设置不正确。确保它的Build Action设置为“Resource”,并且它位于“Images”文件夹下的项目中。

+0

是的,我读过它。它存在于Images文件夹中。我认为在WPF或Visual Studio中有一些错误,因为文件在那里,字符串路径是正确的,文件夹在那里。但它只是没有找到它。我不知道你是如何找不到你的正面的东西。 – 2011-04-09 00:14:30

+0

Visual Studio自动创建一个名为“Images”的文件夹,其大写字母为“I”。但是,当我得到错误时,错误作为小写“我”。所以我甚至尝试将Images文件夹中的I改为小写。仍然没有工作。 – 2011-04-09 00:15:47

+0

@βӔḺṪẶⱫŌŔ:您是否检查了构建操作(右键单击VS中的图标文件,选择属性)?它应该是“资源” – 2011-04-09 00:17:31

0

我有这个相同的问题,发现如果你的项目有一个名称空间,它不会正确读取图像文件。希望有所帮助。

2

我发现当你添加新资源然后重建项目时,VS2008有时会导致这样的问题。我发现如果你清理构建,然后从头开始重建,问题就会消失。看起来像一个VS2008的bug对我来说。

5

确保目标是资源。然后做这样的事情:

Icon="/MobilWPF;component/Resources/Images/MobileIcon.ico" 

其中MobilWPF是你的命名空间,或者你可能是项目名称?我忘了我的项目名称和我的命名空间是一样的。

1

答案似乎取决于你在哪里/如何存储图标。我试图做一些类似于@iterationx's answer的事情,但它对我不起作用,而这正是我完成的。我正在使用VS 2010.

我通过项目的属性页面在Resources,Add Resource(下拉),Add existing file下添加了图标作为资源。然后,我只是在Icon财产使用的文件名:

Icon="my_icon.ico" 
+0

我正在使用VS 2017社区,这仍然帮助我。 – IRGeekSauce 2017-09-23 17:43:56

1

我记得有类似的情况在我的应用程序崩溃了,我最终跟踪它到一个.ico错误。

如果您使用图标和Windows XP,XP不支持256x256图标。您可能需要在编辑器(如IcoFx)中打开该图标,然后删除256x256图标。

+1

今天我遇到了同样的问题。我使用VS 2012(右键单击>删除图像类型)删除了256x256图标,它在XP上运行良好。 – 2013-11-12 11:02:10

2

我通过为图像设置这些属性固定同样的问题:

Build Action = Content 
Copy to Output Directory = Copy always 
0

使用图标=“\影像\ test.ico”这让我在工作资源

+0

如果您可以提供更多信息,可以帮助您更好地了解您的aproche – 2013-07-09 10:37:19

+0

当您尝试将图标添加到您的应用程序时,您经常会发现此错误消息。所以要解决这个问题,你必须使用Icon =“。\ Images \ test.ico”作为代码。 – kedarK 2013-08-12 16:26:25

+0

好吧,我看到了,我必须将此行添加到SourceCode中。感谢更新 – 2013-08-13 08:10:33

-1

设置BuildActionResourceProperties解决了这个问题。

Greets