通过静态 Class 更改图像源时出现问题
Problem Changing the Imagesource via a Static Class
我在每个项目中都会遇到这个非常烦人的错误:
我有一个 class(相同的命名空间),我在其中存储对图像的引用,如下所示:
public class Res
{
public static BitmapImage A = new BitmapImage(new Uri(@"images\A.png", UriKind.Relative));
}
当我尝试通过以下方式将元素源更改为这些静态引用之一时:
xamldefinedimage.Source = Res.A;
它什么都不做。 (当然,我将其与相应的 Dispatcher 一起附上。)
现在当我像这样分配图像源时:
xamldefinedimage.Source = new BitmapImage(new Uri(@"images\A.png", UriKind.Relative));
它工作得很好。我检查了图像属性(资源,构建时复制 -> 看起来不错)。
这个问题让我特别抓狂,因为我有一些旧项目,其中的参考设置工作得很好。我不想使用解决方法,而是使用带有静态引用的特殊 class 来保持代码最少。我真的很想深入了解并一劳永逸地了解我在这里所缺少的东西。这基本上是一个空白项目,还没有做太多。这里的问题是什么,第一种方法不起作用的潜在原因是什么?
您的问题是关于静态 class 但您没有将 Res class 定义为静态。
你的代码应该是这样的:
public static class Res
{
public static BitmapImage A = new BitmapImage(new Uri(@"images\A.png", UriKind.Relative));
}
此外,如果您的图片在应用程序资源中,那么您的 class 应该是这样的:
public static class Res
{
public static BitmapImage A = new BitmapImage(new Uri(@"pack://application:,,,/Images/A.png"));
}
我在每个项目中都会遇到这个非常烦人的错误:
我有一个 class(相同的命名空间),我在其中存储对图像的引用,如下所示:
public class Res
{
public static BitmapImage A = new BitmapImage(new Uri(@"images\A.png", UriKind.Relative));
}
当我尝试通过以下方式将元素源更改为这些静态引用之一时:
xamldefinedimage.Source = Res.A;
它什么都不做。 (当然,我将其与相应的 Dispatcher 一起附上。)
现在当我像这样分配图像源时:
xamldefinedimage.Source = new BitmapImage(new Uri(@"images\A.png", UriKind.Relative));
它工作得很好。我检查了图像属性(资源,构建时复制 -> 看起来不错)。
这个问题让我特别抓狂,因为我有一些旧项目,其中的参考设置工作得很好。我不想使用解决方法,而是使用带有静态引用的特殊 class 来保持代码最少。我真的很想深入了解并一劳永逸地了解我在这里所缺少的东西。这基本上是一个空白项目,还没有做太多。这里的问题是什么,第一种方法不起作用的潜在原因是什么?
您的问题是关于静态 class 但您没有将 Res class 定义为静态。
你的代码应该是这样的:
public static class Res
{
public static BitmapImage A = new BitmapImage(new Uri(@"images\A.png", UriKind.Relative));
}
此外,如果您的图片在应用程序资源中,那么您的 class 应该是这样的:
public static class Res
{
public static BitmapImage A = new BitmapImage(new Uri(@"pack://application:,,,/Images/A.png"));
}