4

グリッドに次のリソース XML があります。

<Grid.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/PresentationFramework.Classic;component/themes/classic.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Grid.Resources>

そして、これはうまくいきます。クラシックテーマをロードします。しかし、古典的なテーマのボタンの背景は非常に白いですか? このテーマのボタンのデフォルトの背景色を変更する方法はありますか?

4

1 に答える 1

2

スタイルを使用して、背景色のみを別の色に設定できます。

<Style TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
      <Setter Property="Background" Value="Green" />
</Style>

ここで重要なのは を使用BasedOn="{StaticResource {x:Type Button}}"することです。これにより、現在の に基づいて Button が作成されるようになりstyle/themeます。この場合、それは になりますClassic。値を割り当てない場合は、単に元のテーマ ( Aero.


通常、すべてのカスタム テーマ データを保存して読み込む XAML ファイルがあります。

<ResourceDictionary Source="Themes\MyTheme.xaml"/>

この場合、次の内容が含まれます。

<ResourceDictionary
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  mc:Ignorable="d"
  xmlns:d="http://schemas.microsoft.com/expression/blend/2008">

    <Style TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
        <Setter Property="Background" Value="Green" />
    </Style>

</ResourceDictionary>
于 2012-10-31T10:58:24.157 に答える