首先,试试这个。
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="80" Width="100" Loaded="Window_Loaded">
<Image x:Name="image"/>
</Window>
和
public partial class MainWindow : Window
{
public static BitmapImage okImage = new BitmapImage(new Uri("pack://Application:,,,/ok.png"));
public MainWindow()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
image.Source = okImage;
}
}
请记住将任何名为 ok.png 的图像放入项目目录。这运行良好并在窗口中显示图像。
现在尝试移动public static BitmapImage okImage = new BitmapImage(new Uri("pack://Application:,,,/ok.png"));
到 App.xaml.cs。
再次运行,我们得到 TypeInitializationException。为什么?
我知道我可以在 MainWindow.xaml.cs 中定义 okImage,但是如果我坚持必须在 App.xaml.cs 中定义和初始化它,我该怎么办?