c# - WPF UserControl 运行时错误:无法在 UserControl 中找到图标的路径
问题描述
在我的WPF User Control
中,我添加了一个图标(如下面的 XAML 所示)。但是在运行时,InitializeComponent()
用户控件的以下代码中的调用给出了如下所示的错误:
UserControl1.xaml.cs
public partial class UserControl1 : System.Windows.Window
{
public UserControl1()
{
InitializeComponent();
}
…………….
}
用户控件的 XAML(带图标):
<Window x:Class="MyProject.UserControl1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:MyProject"
mc:Ignorable="d"
"d:DesignHeight="450" d:DesignWidth="800"
Icon="pack://siteoforigin:,,,/Resources/test_32.png">
<Grid>
………………
</Grid>
错误:
DirectoryNotFoundException:找不到路径“C:\MyFolder\VSTO\MyProject\bin\Debug\Resources\MyIcon.png”的一部分。
备注:
我注意到该Resources
文件夹没有在Debug
文件夹下创建,尽管它是项目的一部分。我已将 MyIcon.png 文件的Build
操作设置为Resource
并Copy to output directory
设置为Copy if newer
解决方案
我不知道为什么,但您应该使用application
资源 Uri 和siteoforigin
其他资源。
您可以将 Uri 更改为:
Icon="pack://application:,,,/Resources/test_32.png"
或者,如果您想继续使用siteoforigin
而不是将构建选项更改为“内容”而不是“资源”。相关话题:
推荐阅读
- php - 将 RTL 文档转换为 PDF
- node.js - 节点“firebase-admin”的问题 - MODULE_NOT_FOUND
- javascript - 将 String html 转换为数组对象类型
- c++ - C++:竞争性编程技巧的解释
- linux - 未为复制的库更新 ldconfig 缓存
- javascript - 使用 VBA 抓取脚本标签
- javascript - 如何生成一个新的 Angular 4 项目而不是创建生成 Angular 6?
- javascript - 使用 window.open() 有过早提交表单的效果
- javascript - 表格单元格没有将它们的 ID 传递给我的函数参数
- android - 如何显示下一张/上一张卡片 RecyclerView 的一部分