アプリケーションに奇妙なバグがありました。AboutDialog が表示されるたびに、メインウィンドウの会社ロゴが消えました。
これは、同じリソースを同時に使用する複数のウィンドウに関連していることを発見しました。私のテストアプリケーションでは、次のような 2 つのウィンドウを開始しています。
void App_Startup(object sender, StartupEventArgs e)
{
MainWindow mainWindow = new MainWindow();
mainWindow.Top = 100;
mainWindow.Left = 900;
mainWindow.Show();
}
私の Mainwindow では、パスが Application リソースとして保存されている ContentPresenter を使用しています。これは文字列では発生しません。しかし、私のロゴは 1 つのウィンドウにしか表示されません。
<StackPanel>
<ContentPresenter x:Name="Logo" Content="{DynamicResource BrandingLogo}" Margin="20" HorizontalAlignment="Center"/>
<TextBox Text="{DynamicResource MyConstString}"/>
</StackPanel>
これを修正する方法を知っている人はいますか?
編集:
私の実際のアプリケーションでは、私のロゴは ResourceDictionary に保存されているため、x:Shared を false に設定することはできません。