【问题标题】:Windows Icon property in WPF, Markup Extension needed?WPF 中的 Windows 图标属性,需要标记扩展?
【发布时间】:2014-02-05 02:16:10
【问题描述】:

我有一个添加到我的应用程序的图标。它显示在出现的第一个窗口中。当我呈现一个新窗口时,我使用

Icon="ApplicationIcon.ico"

在我的窗口中,它崩溃了。当我删除该行时,我的代码运行良好。我正在尝试摆脱 Windows 提供的默认图标并使用我的应用程序正在使用的图标。我仔细检查了路径,但它不起作用。我得到错误:

发生 Xaml 解析异常:'Provide value on 'System.Windows.Baml2006.TypeConverterMarkupExtension' 抛出了一个 例外。'行号“7”和行位置“9”。

Inner Exception: {"Cannot locate resource 'views/applicationicon.ico'."}
System.IO.IOException: {"Cannot locate resource 'views/applicationicon.ico'."}

【问题讨论】:

  • 查看调试器中的内部异常并将其发布......
  • 您使用的是 Windows XP 吗?如果是这样,您尝试使用的图标是否已为 Windows Vista/7 格式化(即分辨率高于 48 像素)
  • HB,如何查看调试器中的内部异常?我正在使用VS2010。总的来说,我是 VS 的新手……
  • @Crystal:在该异常弹出框中单击底部的“查看详细信息”,在打开的窗口中展开第一个节点并查找名为“InnerException”的条目,旁边的值为内部异常消息。可能还有更多内部异常,所以只要有任何节点就展开节点并发布它们的所有消息。 (顺便说一句,我没有收到你的消息,你需要使用@H.B.
  • @H.B.,我不知道 @ 符号是这样工作的。多么整洁!我添加了内部异常。

标签: c# wpf xaml


【解决方案1】:

您似乎错误地使用了应用程序图标。由于这是一个 WPF 应用程序,因此您的工作区中应该有一个 WPF 项目。选择该项目的属性并转到“应用程序”。在资源下,您可以选择图标的相对位置,然后将替换默认的 WPF 应用程序图标。请注意,当应用程序在调试模式下运行时,该图标通常不会出现。为了使它看起来应用程序应该在没有调试或发布模式下运行。

【讨论】:

    【解决方案2】:

    对解决方案中的所有 WPF 窗口使用单个文件通过设置以下.........

    Icon="pack://application:,,,/ReferenceAssemblyname;component/Subfoldername/filename.ico"

    【讨论】:

      【解决方案3】:

      路径是相对的,对于位于其他位置的窗口,它不起作用,您可以使用 pack notation 将其设为绝对路径:

      Icon="pack://application:,,,/ApplicationIcon.ico"
      

      【讨论】:

        【解决方案4】:

        我要在这里大胆猜测一下,您的其他窗口与您的主窗口不在同一个文件夹中。如果是这种情况,请添加"..",类似"..\ApplicationIcon.ico"

        【讨论】:

          【解决方案5】:

          我也有同样的问题。我最终将图标的“构建操作”设置为“内容”,并将“复制到输出目录”选项设置为“始终复制”,效果非常棒。

          【讨论】:

            猜你喜欢
            • 2023-03-29
            • 1970-01-01
            • 1970-01-01
            • 2012-07-17
            • 1970-01-01
            • 2012-07-31
            • 1970-01-01
            • 2014-12-18
            • 2010-10-21
            相关资源
            最近更新 更多