【问题标题】:URI to image file which is local for selected library所选库的本地图像文件的 URI
【发布时间】:2015-02-23 16:58:55
【问题描述】:

我的解决方案包括两个项目:
- Windows Phone 8.1 应用程序
- Windows Phone 8.1 的类库

在应用程序中,我有一个 XAML 文件和一个名为 MyControlTemplateControlTemplateMyControlTemplate<Image Source="{Binding Image}">

在我的类库中,我有一个 Page 和一个使用 MyControlTemplate 的控件。 MyControlTemplate 使用 DataContext 类,该类具有 Image 属性,该属性将 URI 返回到带有图像的文件。

带有图像的文件位于类库中本地设置的Assets 文件夹中。

问题是当绑定到Image 属性以获取选定图像时,创建新URI 的路径不指向类库中的Assets 文件夹。

我目前的解决方案是:

private static Uri _baseUri = new Uri("ms-appx:///Assets");  

然后用在:

public Uri Image
    {
        get
        {
            return new Uri(SampleDataCommon._baseUri, this._picture);
        }
    }  

其中this._picture 设置为@".\Assets\cliff.jpg"

它实际上可以工作,即它从Shared\Assets 项目文件夹而不是我想要实现的类库的Assets 文件夹中获取图像。

URI 有什么帮助吗?

谢谢!

【问题讨论】:

    标签: c# xaml windows-phone-8.1 uri


    【解决方案1】:

    如果您在 C# 中使用 LinkedResource(),很可能不会 获取您的相对 URI 或文件位置。

    你可以使用一些额外的代码

            var outPutDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase);
    
            var logoimage = Path.Combine(outPutDirectory, "Images\\logo.png");
    
            string relLogo = new Uri(logoimage).LocalPath;
    
            var logoImage = new LinkedResource(relLogo)
    

    现在它将获取您的相对路径,将其转换为绝对路径 在内存中,它将帮助您获取图像。

    来自How to set relative path to Images directory inside C# project?

    看起来它可以让你以你正在寻找的方式链接图像。

    【讨论】:

    • Assembly.GetExecutingAssembly() 似乎不适用于 Windows Phone 8.1
    【解决方案2】:

    这就是我解决问题的方法:

    private static Uri _baseUri = new Uri("ms-appx:///nameOfTheProject/Assets/");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-17
      • 2019-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-13
      • 2015-08-30
      相关资源
      最近更新 更多