C# 如何在UWP应用程序中加载和绑定便携库中包含的图像?
我正在做一个UWP应用程序,我很难用UWP应用程序加载和绑定图像,应该怎么做 我目前的结构:C# 如何在UWP应用程序中加载和绑定便携库中包含的图像?,c#,xaml,win-universal-app,uwp-xaml,C#,Xaml,Win Universal App,Uwp Xaml,我正在做一个UWP应用程序,我很难用UWP应用程序加载和绑定图像,应该怎么做 我目前的结构: MyApp.Model: | |-Models |-MyModel.cs |-MyModelContainer.cs |-Resources |-image1.png |-image2.png |-image3.png 我的Xaml在另一个项目中(赢得10个通用应用程序并参考这个可移植类库。) MyModelContainer只是一个实例化IEnumerable的单
MyApp.Model:
|
|-Models
|-MyModel.cs
|-MyModelContainer.cs
|-Resources
|-image1.png
|-image2.png
|-image3.png
我的Xaml在另一个项目中(赢得10个通用应用程序并参考这个可移植类库。)
MyModelContainer
只是一个实例化IEnumerable
的单例容器。以下是他们的内容:
public class MyModel{
public String Name{get;set;}
public ??????? Icon {get;set;}
}
public static class MyModelContainer{
private static IEnumerable<MyModel> _myModelList;
public static IEnumerable<MyModel> MyModelList{get{
if(_myModelList==null){
Initialize();
}
return _myModelList;
}}
private static Initialize(){
_myModelList = new List<MyModel>() {
new MyModel(){
Name = "Model one"
Icon = ???????
}
};
}
}
我的问题是:
BitmapImage
Icon=new-BitmapImage(新Uri(“ms”)-appx://MyApp.Model/Resources/image1.png“”)
如果运气不好,我没有加载图像(并触发ImageFailed事件)
MyApp == AstroApp
MyApp.Model == AstroApp.Model
MyModel = AstroSign
MyModelContainer = AstroManager
如果您的图像与MyModelContainer位于同一个项目中,则以下操作应能正常工作:
public class MyModel{
public String Name{get;set;}
public ImageSource Icon {get;set;}
}
public static class MyModelContainer{
private static IEnumerable<MyModel> _myModelList;
public static IEnumerable<MyModel> MyModelList{get{
if(_myModelList==null){
Initialize();
}
return _myModelList;
}}
private static Initialize(){
_myModelList = new List<MyModel>() {
new MyModel(){
Name = "Model one"
Icon = new BitmapImage(new Uri("ms-appx:///Resources/image1.png"));
}
};
}
}
它位于同一个项目中,但与XAML不在同一个项目中。我尝试了您的示例,但仍然没有图像绑定,并且触发了事件“image.ImageFailed”:(如果您尝试ms-appx:///NameOfProjectWithImage/Resources/image1.png?Same 事情(我说过我试过)。图像的预期生成操作是什么?在您的问题中,您在“ms appx”(ms appx://)之后使用了2个斜杠,而我在“ms appx://”之后使用了3个斜杠-appx:///NameOfProject...)-这可能是一个原因吗?我刚刚注意到我的错误:(正确的方法是使用你的第二个建议(
ms-appx:///NameOfProjectWithImage/Resources/image1.png
),但事实上,在其中一张图片中,我有一个输入错误,所以断点被击中,我认为这是所有图片的情况,我很抱歉。你能更新你的答案以反映正确的路径,我会接受它吗?试试这个@LovetoCode,ImageUrl是如何创建的?它是字符串还是URI,wh它的格式是什么?它是字符串形式。或者只提供源属性的url。BitmapImage将自动创建。让图标为“ms”-appx:///MyApp.Model/Resources/image1.png“@LovetoCode和图像的构建动作应该是什么?这对我来说很有用Source=”ms-appx:///ClassLibrary2/Resources/image.png"ClassLibrary2是一个不同的项目。你是否将模型项目引用添加到了你的主项目中。现在我只能想这就是问题所在
public class MyModel{
public String Name{get;set;}
public ImageSource Icon {get;set;}
}
public static class MyModelContainer{
private static IEnumerable<MyModel> _myModelList;
public static IEnumerable<MyModel> MyModelList{get{
if(_myModelList==null){
Initialize();
}
return _myModelList;
}}
private static Initialize(){
_myModelList = new List<MyModel>() {
new MyModel(){
Name = "Model one"
Icon = new BitmapImage(new Uri("ms-appx:///Resources/image1.png"));
}
};
}
}
Icon = new BitmapImage(new Uri("ms-appx:///NameOfProjectWithImage/Resources/image1.png"));