如何在WPF中解析相对URI?

时间:2017-09-04 14:03:03

标签: c# wpf relative-path

简介

我最近在如何解决亲戚Uri方面遇到了困难,因为它不是我预期的那样。

注意:我知道我可以使用包语法UriKind.Absolute解决我的问题来解决此问题。我真的对如何在WPF中解析亲属Uri感兴趣?

所以,让我们继续我的......

实施例

在我的项目中,我有以下文件夹层次结构:

  • 项目根/
    • images / (这些图片为Copy [...]: Do Not Copy Build Action: Resource
      • someimage.png
    • 效用/
      • ActionColumn /
        • 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.csview/somefolder/anotherfolder/MyUsercontrol.cs后,Uri将无效。这表明Uri已使用MyUsercontrol作为基本路径解析,因为new BitmapImage(new Uri("../../../images/someimage.png"将解决此问题。

问题:

有人可以解释,为什么MyActionColumn的位置不是用来解决这个相对路径的?

如何确定基本路径,尤其是在使用编译到程序集中的图像(Build Action: Resource)时?

0 个答案:

没有答案
相关问题