1

brianlagunas.comToggleButtonから自由に入手できるテーマのスタイルを使用したいと考えています。

問題は、テーマを適用すると、トグル ボタンのスタイルが設定されるだけでなく、そのテーマに従ってすべてのコントロールのスタイルが設定されることです。

暗黙的に使用されるように設計されたテーマから明示的にスタイルを適用するにはどうすればよいですか?

テーマのロード方法

<Window.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <!-- Light Theme -->
            <ResourceDictionary
             Source="Themes/Metro/Light/Metro.MSControls.Core.Implicit.xaml" />
            <ResourceDictionary
             Source="Themes/Metro/Light/Metro.MSControls.Toolkit.Implicit.xaml" />
            <!-- Dark Theme -->
            <!--
                <ResourceDictionary
                 Source="Themes/Metro/Dark/MetroDark.MSControls.Core.Implicit.xaml" />
                <ResourceDictionary
                 Source="Themes/Metro/Dark/MetroDark.MSControls.Toolkit.Implicit.xaml" />
            -->
        </ResourceDictionary.MergedDictionaries>
        <!-- Light Theme -->
        <SolidColorBrush x:Key="BackgroundKey" Color="#FFFFFF" />
        <!-- Dark Theme -->
        <!--<SolidColorBrush x:Key="BackgroundKey" Color="#FF181818" />-->
    </ResourceDictionary>
</Window.Resources>

テーマの使用方法:

<ToggleButton Content="ToggleButton" Width="150"
    Style="{StaticResource ToggleButtonStyle}"/>

ありがとう。

4

1 に答える 1

2

ResourceDictionary問題は、 の暗黙的なスタイルを定義するをロードすることですToggleButton

リンクしたダウンロード ページは実際には完全なソリューションをダウンロードしているため、次のオプションがあります。

  1. Metro.MSControls.Core.Implicit.xamlトグル ボタンのスタイルをリソースに移動してコピーします (ToggleButtonStyleキーのあるもの。必要なすべてのブラシを「持参」することを忘れないでください)。
  2. そこには DLL がないので、プロジェクト/ソリューションをコンパイルしたと仮定して、再コンパイルできるようにします。その場合は、同じファイルに移動して、次の行をコメントアウトします。
<Style BasedOn="{StaticResource ToggleButtonStyle}"
    TargetType="{x:Type ToggleButton}" />

(ファイル内の最後のスタイルの 1 つ前)

再コンパイルすれば準備完了です。

私は間違いなくオプション 2 を選択します。

于 2013-11-11T19:00:17.507 に答える