我想做什么:
我想在WPF中看到一个图像。
问题:
当我尝试加载图片时,我得到一个TypeInitializationException
。
我试图解决这个问题:
我实施了try-catch
。如果第一个Image
(我实际想要的Image
)抛出一个TypeInitializationException
,我会看到另一个Image
(仅用于测试)。第二个Image
(来自catch
块)可见,但我想看到的Image
不是。两个Image
都具有属性"embedded Resource"
。 Image
个namespace
位于同一个Travelagency.Ressources
(Menu
),但位于不同的子目录中(TravelDataFilterMenuIcons
和TravelDataFilterVM.cs
)。
C#代码:
MenuEntry money = null;
try
{
money = new MenuEntry(Guid.NewGuid(), Travelagency.Ressources.TravelDataFilterMenuIcons.TravelDataFilterMenuIcon.Euro);
}
catch(TypeInitializationException ex)
{
money = new MenuEntry(Guid.NewGuid(), Travelagency.Ressources.Menu.MenuIcon.MenuImage);
}
TravelDataFilterMenuIcon.cs
public static readonly BitmapImage Euro = ImageLoader.LoadImageAsBitmap("Travelagency.Ressources.TravelDataFilterMenuIcons.euro.png");
(不起作用)
Menu.cs
public static readonly BitmapImage MenuImage = ImageLoader.LoadImageAsBitmap("Travelagency.Ressources.Menu.menu5.png");
(确实有用)
Image
修改
我发现每个Menu.cs
都可以从Image
加载,但TravelDataFilterVM.cs
不能加载Image
。问题不在于class
是classes
的路径或其他内容。所以这里有TravelDataFilterVM.cs
:
using System.Windows.Media.Imaging;
namespace Travelagency.Ressources.TravelDataFilterMenuIcons
{
public class TravelDataFilterMenuIcon
{
private TravelDataFilterMenuIcon() { }
public static readonly BitmapImage Euro = ImageLoader.LoadImageAsBitmap("Travelagency.Ressources.TravelDataFilterMenuIcons.euro.png");
public static readonly BitmapImage Fuenfzigeuro = ImageLoader.LoadImageAsBitmap("Travelagency.Ressources.TravelDataFilterMenuIcons.fuenfzigeuro.png");
public static readonly BitmapImage Hunderteuro = ImageLoader.LoadImageAsBitmap("Travelagency.Ressources.TravelDataFilterMenuIcons.hunderteuro.png");
}
}
(不起作用)
Menu.cs
using System.Windows.Media.Imaging;
namespace Travelagency.Ressources.Menu
{
public class MenuIcon
{
private MenuIcon() { }
public static readonly byte[] MENU = ImageLoader.LoadImageAsByteArray("Travelagency.Ressources.Menu.menu5.png");
public static readonly BitmapImage MenuImage = ImageLoader.LoadImageAsBitmap("Travelagency.Ressources.Menu.menu5.png");
}
}
(确实有用)
{{1}}
答案 0 :(得分:-1)
现在它有效!我不知道为什么。我一无所获。我甚至没有重新启动任何东西。