Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.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# 如何将图像存储在类库中并从任何类访问它_C#_Wpf_Visual Studio_Mvvm - Fatal编程技术网

C# 如何将图像存储在类库中并从任何类访问它

C# 如何将图像存储在类库中并从任何类访问它,c#,wpf,visual-studio,mvvm,C#,Wpf,Visual Studio,Mvvm,我的解决方案中的“图像”文件夹中有一些图像。在我的库中的一个类中,我想决定在运行时应该使用哪个映像。我从用户控件的代码隐藏中执行此操作的旧方法是在类的构造函数中加载所有图像,如下所示: myImage = FindResource("MyImageResource") as BitmapImage; 然后在运行时确定要使用哪个映像 但这似乎在我的类库中的任何类中都不起作用,更不用说它似乎与我所读到的有关MVVM的所有内容背道而驰 关于我要做什么的更多信息 本质上,我有一个模型类,它存储插入的驱

我的解决方案中的“图像”文件夹中有一些图像。在我的库中的一个类中,我想决定在运行时应该使用哪个映像。我从用户控件的代码隐藏中执行此操作的旧方法是在类的构造函数中加载所有图像,如下所示:

myImage = FindResource("MyImageResource") as BitmapImage;
然后在运行时确定要使用哪个映像

但这似乎在我的类库中的任何类中都不起作用,更不用说它似乎与我所读到的有关MVVM的所有内容背道而驰

关于我要做什么的更多信息 本质上,我有一个模型类,它存储插入的驱动器上的所有信息,例如驱动器类型和名称

一个视图模型类,用于监视何时插入或卸下任何驱动器

视图类是一个面板,它包含一组类似于系统驱动器的按钮

为了澄清我的问题:

我应该如何在WPF类库中存储和加载图像


我应该在哪个类中确定(在运行时)要使用哪个映像(在MVVM模式中)?

到目前为止,我决定给模型类一个BitmapImage属性,我在它的构造函数中设置了该属性,该属性使用以下行表示它的驱动器类型的映像:

DiskImage  = new BitmapImage(new Uri("/MyApp;component/Images/DiskDrive.png", UriKind.Relative));

到目前为止,我决定为模型类提供一个BitmapImage属性,我在它的构造函数中为代表其驱动器类型的映像设置了该属性,使用以下行:

DiskImage  = new BitmapImage(new Uri("/MyApp;component/Images/DiskDrive.png", UriKind.Relative));

问题非常广泛。通常情况下,您会从由加载的程序集加载图像资源。如果这是您编写的自定义用户控件,则不应使用MVVM模式-只需将代码中的所有逻辑都保留在后面即可。请@auburg解释为什么会出现这种情况?请参阅此讨论。问题非常广泛。通常情况下,您会从由加载的程序集加载图像资源。如果这是您编写的自定义用户控件,则不应使用MVVM模式-只需将代码中的所有逻辑都保留在后面即可。请@auburg解释为什么会出现这种情况?请参阅此讨论