当App.xaml在不同的程序集中时,Visual Studio 2012 XAML设计器没有显示正确的内容

时间:2013-07-18 08:58:37

标签: c# wpf xaml visual-studio-2012 xaml-designer

我正在将WPF应用程序从VS 2010迁移到VS 2012。

我有一个主要的可执行文件,其中包含App.xaml和一个用于所有WPF内容的单独的类库。 在VS2012(SP3)中,XAML设计器不会显示App.xaml中定义的MergedResourceDictionary中的任何样式,VS 2010会...

出于测试目的,我将App.xaml移到了我的类库中。之后,VS 2012设计师正确地展示了一切。

由于类库不能包含App.xaml,因此这不是解决方案。

有什么想法吗?

我的App.xaml如下所示:

<Application x:Class="MyApplication.App"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Startup="AppStartup">
<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="pack://application:,,,/OtherAssemblyName;component/Resources/Resource1.xaml" />
            <ResourceDictionary Source="pack://application:,,,/OtherAssemblyName;component/Resources/Resource2.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

1 个答案:

答案 0 :(得分:0)

知道这是一个老问题,但是对于任何可能在未来面临类似事情的人都要回答它。

最安全的方法是创建一个新的ResourceDictionary文件,并在其中添加MergedResourceDictionaries。

然后在用户控件/ pages / windows中引用ResourceDictionary - 所有这些,自

以来
<UserControl.Resources>
    <ResourceDictionary Source="GlobalResources.xaml" />
<UserControl.Resources>