2

好的,这让我发疯了。我有一个 Silverlight 5 项目。不久前,我们决定为我们的项目设置主题,只是为了让它更流行。我找到了一个主题实现并继续前进。

首先,我使用了 Silverlight Toolkit 中的 .Theming 命名空间。我使用了显式构建的theme.dll。但这有一个缺点,就是我没有自定义主题的能力。所以我决定只使用theme.xaml,并通过使用.xaml 来实现它<MergedDictionaries>

但是,这种方法的问题是我失去了在设计时看到主题的能力。在运行时它工作正常。但这还不够好,当我不想自定义主题时。

我通过在 App.Xaml 中使用合并字典来实现主题,就像这样

   <Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/eCP;component/Themes/WhistlerBlue.xaml"/>
        </ResourceDictionary.MergedDictionaries>
        <vm:ViewModelLocator x:Key="ViewModelLocator"/>
    </ResourceDictionary>
   </Application.Resources>

如果我在我的 MainPage 中放置相同的块,则主题会在设计时立即打开。但不是必须在每个 Silverlight 页面上都这样做吗?

简而言之:如果我在 App.xaml 中使用 MergedDictionaries 实现主题,则它在设计时不起作用。如果我在特定页面上执行此操作,它确实有效。

有趣的是,如果我在 Expression Blend 中打开我的项目,它在设计时可以正常工作。

我的第一个想法是,我的 Visual Studio 2010 SP1 出现了问题。也许隐藏项目文件中的某些内容或其他内容,但我不知道。

有谁能帮忙吗?

4

0 回答 0