首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF将主题应用于特定项目,而不是整个应用程序

WPF将主题应用于特定项目,而不是整个应用程序
EN

Stack Overflow用户
提问于 2013-06-29 04:05:06
回答 1查看 943关注 0票数 1

我在project1中创建了一个主题,并在app.xaml中引用了theme.xaml。效果是所有项目在解决方案中都有相同的主题。

将theme.xaml应用于指定项目的最简单方法是什么,即只应用于project1而不应用于project2?

我知道我可以在project1中的每个世界粮食计划署表单中引用theme.xaml

代码语言:javascript
复制
    <Window.Resources>
        <ResourceDictionary Source="/Project1;component/Themes/Customized.xaml" />
    </Window.Resources>

但是,如果我想改变项目的主题,这就有点难以维护了。我正在寻找的是像project.xaml一样的东西,行为像app.xaml,只有范围是当前的项目。这样,我就可以在一个地方为指定的项目(而不是其他项目)引用theme.xaml。

这有可能吗?

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-29 14:30:45

  1. 创建一个项目主题资源字典,并将对FooTheme.xaml的引用放入其中。在项目的所有窗口中,将对FooTheme.xaml的引用放入

这样,为了更改项目的主题,您将只需要修改一行。

代码:

FooTheme.xaml (示例主题)

代码语言:javascript
复制
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Style TargetType="Button">
        <Setter Property="Background" Value="Blue"/>
    </Style>
</ResourceDictionary>

ProjectTheme.xaml (项目主题)

代码语言:javascript
复制
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <ResourceDictionary.MergedDictionaries>
        <!-- In order to modify the project's theme, change this line -->
        <ResourceDictionary Source="FooTheme.xaml"/>
    </ResourceDictionary.MergedDictionaries>
</ResourceDictionary>

MainWindow.xaml (示例项目窗口)

代码语言:javascript
复制
<Window x:Class="So17372811ProjectTheme.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="ProjectTheme.xaml"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Window.Resources>
    <Grid>
        <Button Content="Click me!"/>
    </Grid>
</Window>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17372811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档