コードビハインドでwpfスタイルを作成する方法を知っている人はいますか。WebやMSDNのドキュメントには何も見つかりません。私はこれを試しましたが、機能していません:
Style s = new Style(typeof(TextBlock));
s.RegisterName("Foreground", Brushes.Green);
s.RegisterName("Text", "Green");
breakInfoControl.dataTextBlock.Style = s;
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);
}
これにより、必要なものが得られます。
Style style = new Style
{
TargetType = typeof(Control)
};
style.Setters.Add(new Setter(Control.ForegroundProperty, Brushes.Green));
myControl.Style = style;