我正在尝试在我的WPF应用程序中使用Icon,并尝试使用其他一些图像,但我不断从Designer视图中收到错误,例如“path-x不是有效资源或无法找到”。 - 其中“path-x”是我尝试使用的任何图像的路径。
如果它在正确的地方寻找,我打赌它会找到它;)
然后,它决定不再给我那个错误了。所以,我继续点击Run(F5),在标题栏中看到我的新图标。只有面对这个野兽:“System.Windows.Markup.XamlParseException 发生消息='提供价值 'System.Windows.Baml2006.TypeConverterMarkupExtension' 抛出一个例外。'行号'5' 和行位置'50'。
来源= PresentationFramework
LineNumber = 5 LinePosition = 50
堆栈跟踪: 在System.Windows.Markup.XamlReader.RewrapException(Exception e,IXamlLineInfo lineInfo,Uri 基本URI) 在System.Windows.Markup.WpfXamlLoader.Load(XamlReader) xamlReader,IXamlObjectWriterFactory writerFactory,布尔 skipJournaledProperties,Object rootObject,XamlObjectWriterSettings 设置,Uri baseUri) 在System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader) xamlReader,布尔值 skipJournaledProperties,Object rootObject,XamlAccessLevel accessLevel,Uri baseUri) 在System.Windows.Markup.XamlReader.LoadBaml(Stream stream,ParserContext parserContext, Object parent,Boolean closeStream) 在System.Windows.Application.LoadComponent(Object 组件,Uri resourceLocator) at One_Stop_Management.MainWindow.InitializeComponent() 在c:\ Users \ Jason \ Documents \ Visual中 Studio 2010 \ Projects \ One Stop 管理\一站式 Management \ MainWindow.xaml:第1行 at One_Stop_Management.MainWindow..ctor() 在C:\ Users \ Jason \ Documents \ Visual中 Studio 2010 \ Projects \ One Stop 管理\一站式 Management \ MainWindow.xaml.cs:第25行 InnerException:System.IO.IOException 消息=找不到资源'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,Stream stream,BitmapCacheOption cacheOption,Guid& clsId,Boolean& isOriginalWritable,Stream& uriStream, UnmanagedMemoryStream&安培; unmanagedMemoryStream,SafeFileHandle& safeFilehandle) 在System.Windows.Media.Imaging.BitmapDecoder.CreateFromUriOrStream(Uri) baseUri,Uri uri,Stream stream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, RequestCachePolicy uriCachePolicy, Boolean insertInDecoderCache) 在System.Windows.Media.Imaging.BitmapFrame.CreateFromUriOrStream(Uri) baseUri,Uri uri,Stream stream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, RequestCachePolicy uriCachePolicy) 在System.Windows.Media.ImageSourceConverter.ConvertFrom(ITypeDescriptorContext) 上下文,CultureInfo文化,对象 值) 在System.Windows.Baml2006.TypeConverterMarkupExtension.ProvideValue(IServiceProvider) 服务提供者) 在MS.Internal.Xaml.Runtime.ClrObjectRuntime.CallProvideValue(MarkupExtension) 我,IServiceProvider serviceProvider) InnerException:“
为什么这件事给我的态度?我只是想插入一张图片......
当我尝试使用属性窗格添加图标时,这是为图标生成的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">
我甚至无法使用属性窗格添加图标,下面是它给我的错误。
答案 0 :(得分:5)
确保目标是资源。然后做这样的事情:
Icon="/MobilWPF;component/Resources/Images/MobileIcon.ico"
MobilWPF是您的命名空间,还是您的项目名称?我忘了我的项目名称,我的命名空间是一样的。
答案 1 :(得分:2)
我发现当你添加新资源然后重建项目时,VS2008有时会导致这样的问题。我发现如果你清理构建,然后从头开始重建,问题就会消失。对我来说看起来像VS2008的错误。
答案 2 :(得分:2)
我通过为图片设置这些属性来解决同样的问题:
Build Action = Content
Copy to Output Directory = Copy always
答案 3 :(得分:1)
对不起,我无法提供更多帮助。在开始阅读你的问题时,我认为它只是一种类型不匹配,就像你指定一个字符串时它意味着一个图像。这个问题似乎是一个有多种可能解决方案的问题。我只会将您链接到Microsoft Connect page that has them on it。
,而不是列出所有内容答案 4 :(得分:1)
例外情况,如果你仔细阅读,就说同样的事情:
InnerException:System.IO.IOException Message =找不到资源'images / favicon.ico'。
这可能是因为未正确设置Images/favicon.ico
图标图像。确保它的Build Action设置为“Resource”,并且它位于“Images”文件夹下的项目中。
答案 5 :(得分:1)
答案似乎取决于您存储图标的位置/方式。我试图做类似于@iterationx's answer的事情,但它对我不起作用,这就是我最终完成的事情。我正在使用VS 2010。
我通过项目的属性页面,在“资源”,“添加资源”(下拉列表),“添加现有文件”下将图标添加为资源。然后我只使用Icon
属性中的文件名:
Icon="my_icon.ico"
答案 6 :(得分:1)
我记得我的应用程序崩溃的类似情况,我最终将其跟踪为.ico错误。
如果您使用的是图标和Windows XP,则XP不支持256x256图标。您可能需要在编辑器中打开图标,例如IcoFx,并删除256x256图标。
答案 7 :(得分:1)
在资源BuildAction
中将Resource
设置为Properties
解决了这个问题。
迎接
答案 8 :(得分:0)
我遇到了同样的问题,发现如果您的项目名称中有空格,则无法正确读取图像文件。希望有所帮助。
答案 9 :(得分:0)
使用Icon =“。\ Images \ test.ico”这让我工作