WPF UserControl Runtime error: Unable to find path of the icon in UserControl
WPF UserControl Runtime error: Unable to find path of the icon in 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: Could not find a part of the path '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
而不是将构建选项更改为 "content" 而不是 "Resource"。
相关主题:
What is application's site of origin and when to use it
在我的 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: Could not find a part of the path '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
而不是将构建选项更改为 "content" 而不是 "Resource"。
相关主题:
What is application's site of origin and when to use it