好的,这让我发疯了。我有一个 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 出现了问题。也许隐藏项目文件中的某些内容或其他内容,但我不知道。
有谁能帮忙吗?