我最近在如何解决亲戚Uri
方面遇到了困难,因为它不是我预期的那样。
注意:我知道我可以使用包语法和UriKind.Absolute
解决我的问题来解决此问题。我真的对如何在WPF中解析亲属Uri
感兴趣?
所以,让我们继续我的......
在我的项目中,我有以下文件夹层次结构:
Copy [...]: Do Not Copy
Build Action: Resource
)
someimage.png
MyActionColumn.cs
这是一个无法控制的 MyUsercontrol.cs
在MyActionColumn
我以编程方式创建ContextMenu
相对链接到someimage.png
。
var contextMenu = new ContextMenu();
contextMenu.Items.Add(new MenuItem
{
Icon = new Image
{
Source = new BitmapImage(new Uri("../../images/someimage.png", UriKind.Relative))
},
Header = "...", Command = MyCommand, CommandParameter = param
});
在MyUsercontrol
我使用MyActionColumn
。这有效。 ContextMenu
正在显示someimage.png
。
但是...... 的
重构view/MyUsercontrol.cs
到view/somefolder/anotherfolder/MyUsercontrol.cs
后,Uri
将无效。这表明Uri
已使用MyUsercontrol
作为基本路径解析,因为new BitmapImage(new Uri("../../../images/someimage.png"
将解决此问题。
有人可以解释,为什么MyActionColumn
的位置不是用来解决这个相对路径的?
如何确定基本路径,尤其是在使用编译到程序集中的图像(Build Action: Resource
)时?