2011-04-08 39 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