1. ホーム
  2. c#

[解決済み] WPFラベルのStyleプロパティをコードで設定する?

2023-05-03 18:56:18

質問

App.xamlに、以下のようなコードがあります。

<Application.Resources>
    <Style x:Key="LabelTemplate" TargetType="{x:Type Label}">
        <Setter Property="Height" Value="53" />
        <Setter Property="Width" Value="130" />
        <Setter Property="HorizontalAlignment" Value="Left" />
        <Setter Property="Margin" Value="99,71,0,0" />
        <Setter Property="VerticalAlignment" Value= "Top" />
        <Setter Property="Foreground" Value="#FFE75959" />
        <Setter Property="FontFamily" Value="Calibri" />
        <Setter Property="FontSize" Value="40" />
    </Style>
</Application.Resources>

これは、私のラベルのための一般的なテンプレートを提供することを意図しています。

メインのXAMLコードでは、次のようなコード行があります。

<Label Content="Movies" Style="{StaticResource LabelTemplate}" Name="label1" />

しかし、私はコードを通してStyleプロパティを初期化したいのです。私は試しました。

label1.Style = new Style("{StaticResource LabelTemplate}");

label1.Style = "{StaticResource LabelTemplate}";

どちらの解決策も有効ではありませんでした。

どんな助けでも感謝します :).

どのように解決するのですか?

コードのどこでスタイルを取得しようとしているのですか?コードの後ろ?

こう書けばいいんじゃない?

code-behindの場合。

Style style = this.FindResource("LabelTemplate") as Style;
label1.Style = style;

他の場所にいる場合

Style style = Application.Current.FindResource("LabelTemplate") as Style;
label1.Style = style;

下段の注意書き。 を指定しないでください。 Style というキーワードで Template というキーワードがあると、最終的には StyleTemplate とは異なる概念であるため、そうするべきではありません。