web-dev-qa-db-ja.com

コードビハインドでスタイルを作成する

コードビハインドでwpfスタイルを作成する方法を知っている人はいますか。WebやMSDNのドキュメントには何も見つかりません。私はこれを試しましたが、機能していません:

Style s = new Style(typeof(TextBlock));
s.RegisterName("Foreground", Brushes.Green);
s.RegisterName("Text", "Green");

breakInfoControl.dataTextBlock.Style = s;
31
James

RegisterNameを使用するのではなく、スタイルにセッターを追加する必要があります。 Window_Loadedイベントの次のコードは、Window内のTextBlockのすべてのインスタンスのデフォルトになる新しいTextBlockスタイルを作成します。特定のTextBlockに明示的に設定する場合は、スタイルをResourcesディクショナリに追加するのではなく、そのコントロールのStyleプロパティを設定できます。

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    Style style = new Style(typeof (TextBlock));
    style.Setters.Add(new Setter(TextBlock.ForegroundProperty, Brushes.Green));
    style.Setters.Add(new Setter(TextBlock.TextProperty, "Green"));
    Resources.Add(typeof (TextBlock), style);
}
74
mjeanes

これにより、必要なものが得られます。

Style style = new Style
{
    TargetType = typeof(Control)
};
style.Setters.Add(new Setter(Control.ForegroundProperty, Brushes.Green));
myControl.Style = style;
9
oltman