0

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

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

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

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

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

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

编辑:

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

4

1 回答 1

1

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

   <Canvas x:Key="BrandingLogo" x:Shared = "false"/>
于 2013-09-30T13:27:28.613 回答