2015-02-23 42 views
1

我的解决方案包括两个项目:
- 的Windows Phone 8.1应用
- 类库的Windows Phone 8.1URI到图像文件,该文件是本地的选定库

在应用程序中我有一个XAML文件用ControlTemplate调用MyControlTemplateMyControlTemplate已有<Image Source="{Binding Image}">

在我的课程库中,我有一个Page控制器,它使用MyControlTemplateMyControlTemplate使用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

谢谢!

回答

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?

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

+0

'Assembly.GetExecutingAssembly()'似乎并没有被工作在Windows Phone 8.1 – 2015-02-24 08:40:40

1

这是我如何解决了这个问题:

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