Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在UWP应用程序中加载和绑定便携库中包含的图像?_C#_Xaml_Win Universal App_Uwp Xaml - Fatal编程技术网

C# 如何在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的单

我正在做一个UWP应用程序,我很难用UWP应用程序加载和绑定图像,应该怎么做

我目前的结构:

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事件)
  • 如何将此属性绑定到
  • 这适用于UWP(windows 10)应用程序,不是WPF,也不是win8

    多谢各位

    编辑

    下面是文件夹结构

    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"));