まず、これを試してください。App.xaml.csからの画像にアクセスするときに例外をスローする
<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で定義して初期化する必要があると主張する場合、どうすればよいですか?
あなたのexplainationが便利です。手動でパックスキーマパーサーを読み込むことはできませんか?なぜなら私はokImageでreadonlyキーワードを使うことができないからです。 – Gqqnbig