多个WPF Windows同时使用相同的资源

时间:2013-09-30 13:23:18

标签: c# wpf resources resourcedictionary

我的应用程序中有一个奇怪的Bug。每当显示AboutDialog时,主窗口上的companylogo就会消失。

我发现这与多个同时使用相同资源的窗口有关。 在我的测试应用程序中,我正在启动两个这样的窗口:

void App_Startup(object sender, StartupEventArgs e)
{
  MainWindow mainWindow = new MainWindow();
  mainWindow.Top = 100;
  mainWindow.Left = 900;
  mainWindow.Show();
}

在我的Mainwindow上我使用ContentPresenter,其路径存储为Application资源。字符串不会发生这种情况。但我的徽标只显示在一个窗口上。

    <StackPanel>
        <ContentPresenter x:Name="Logo" Content="{DynamicResource BrandingLogo}" Margin="20" HorizontalAlignment="Center"/>
        <TextBox Text="{DynamicResource MyConstString}"/>
    </StackPanel>

有没有人知道如何解决这个问题?

编辑:

在我的真实世界应用程序中,我的徽标存储在ResourceDictionary中,因此无法将x:Shared设置为false。

1 个答案:

答案 0 :(得分:1)

x:Shared = false资源上设置Canvas以便每次都返回新实例。

   <Canvas x:Key="BrandingLogo" x:Shared = "false"/>
相关问题