1

project1 でテーマを作成し、app.xaml で theme.xaml を参照しました。その結果、すべてのプロジェクトがソリューション内で同じテーマを取得します。

theme.xaml を指定したプロジェクトに適用する最も簡単な方法は何ですか?つまり、project1 のみに適用し、project2 には適用しませんか?

project1 内の各 WFP フォームで theme.xaml を参照できることはわかっています。

    <Window.Resources>
        <ResourceDictionary Source="/Project1;component/Themes/Customized.xaml" />
    </Window.Resources>

しかし、プロジェクトのテーマを変更したい場合、それを維持するのは少し難しいです. 私が探しているのは、app.xaml のように動作する project.xaml のようなものです。スコープは現在のプロジェクトのみです。そうすれば、指定したプロジェクトの 1 か所で theme.xaml を参照できます (ただし、他のプロジェクトは参照できません)。

それは可能ですか?

前もって感謝します。

4

1 に答える 1

1
  1. プロジェクトのテーマ リソース ディクショナリを作成し、そこに参照を入れますFooTheme.xaml

  2. プロジェクトのすべてのウィンドウで、参照を配置しProjectTheme.xamlます。

このように、プロジェクトのテーマを変更するには、1 行だけ変更する必要があります。

コード:

FooTheme.xaml (サンプルテーマ)

<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 (プロジェクト テーマ)

<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 (サンプル プロジェクト ウィンドウ)

<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>
于 2013-06-29T06:30:45.297 に答える