2016-06-25 5 views
0

私は使用しようとしています: Modern UI for WPFExtended WPF Toolkit、より具体的にはIntegerUpDownです。問題は、IntegerUpDownが選択されたModernUIテーマに従わないということです。暗いテーマに変更したときにはっきりしていて、IntegerUpDownは白い背景にとどまっています。WPFで現在の "テーマ/スタイル"に従うカスタムコントロールを作成するには?

まず、私は...のような

<Style TargetType="{x:Type local:IntegerUpDown}" BasedOn="{StaticResource {x:Type TextBox}}" /> 

を何かをしようと...しかし、実行時に、私は例外を取得「基本型であるターゲット型 とスタイルのベースのみに 『IntegerUpDown』。 "私は最後にIntegerUpDownが "複合"コントロールであり、テキストボックスから直接派生したものではないことを理解しています...

私はどうしているのですか?私の研究では、私は、ファイルが関連する可能性があるということがわかった:Style for Button on ModernUI

  • NumericUpDown Theme File on WPF ToolKit
  • が、私は解決策を取得したりするために2つの情報を結びつけるためのXAMLの専門家ではない場合があります私が見ることができない別のいくつかの簡単な解決策です...

    ありがとうございました。

答えて

2

あなたが気づいたように、カスタムコントロールを扱うときには、レイアウトを再設定するためにカスタムスタイルを行う必要がよくあります。それはどれくらいの距離を取るかによって異なりますが、以下のワークフローで背景色を修正する必要があると私は考えています。

は、背景色がエクシードのリソーステーマにバインドされ、Wpf Toolkitからスニペット:

<Style x:Key="NumericUpDown" TargetType="{x:Type prim:InputBase}"> 
     <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}" /> 
     <Setter Property="Background" Value="{DynamicResource {x:Static themes:ResourceKeys.ControlNormalBackgroundKey}}" /> 
     <Setter Property="BorderBrush" Value="{DynamicResource {x:Static themes:ResourceKeys.ControlNormalBorderKey}}" /> 
</Style> 

(選択したテーマ以下)ModernUIスタイルのため、これらのプロパティfolows例えばModernUI TextBox

<Style TargetType="{x:Type TextBoxBase}"> 
     <Setter Property="Foreground" Value="{DynamicResource InputText}"/> 
     <Setter Property="Background" Value="{DynamicResource InputBackground}"/> 
     <Setter Property="BorderBrush" Value="{DynamicResource InputBorder}"/> 
</Style> 

DynamicResourcesは、あなたが今、ハード彼らは1つのテーマ

<Style TargetType="{x:Type local:IntegerUpDown}"> 
     <Setter Property="Foreground" Value="#d1d1d1" /> 
     <Setter Property="Background" Value="#333333" /> 
     <Setter Property="BorderBrush" Value="#333333" /> 
</Style> 
上に固定すること、自分のスタイルでそれらをコーディングすることができ ModernUI.Dark.xaml

<SolidColorBrush x:Key="InputText" Color="#d1d1d1" /> 

<SolidColorBrush x:Key="InputBackground" Color="#333333" /> 
<SolidColorBrush x:Key="InputBackgroundHover" Color="#3e3e42" /> 
<SolidColorBrush x:Key="InputBorder" Color="#333333" /> 

例えば、テーマファイルに発見されました

豊富なスタイリングのために、より多くの作業を加える必要があります。たとえば、this post ウォーターマークの小道具のスタイル変更erty。

関連する問題