In App.xaml habe ich den folgenden Code:
<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>
Dies soll eine generische Vorlage für meine Etiketten bereitstellen.
Im Haupt-XAML-Code habe ich die folgende Codezeile:
<Label Content="Movies" Style="{StaticResource LabelTemplate}" Name="label1" />
Ich möchte jedoch die Style-Eigenschaft über Code initialisieren. Ich habe versucht:
label1.Style = new Style("{StaticResource LabelTemplate}");
und
label1.Style = "{StaticResource LabelTemplate}";
Keine der Lösungen war gültig.
Jede Hilfe wäre dankbar :).
c#
wpf
user-interface
label
Daniel
quelle
quelle
Antworten:
Wo im Code versuchen Sie, den Stil zu bekommen? Code dahinter?
Sie sollten dies schreiben:
Wenn Sie im Code-Behind sind:
Style style = this.FindResource("LabelTemplate") as Style; label1.Style = style;
Wenn du woanders bist
Style style = Application.Current.FindResource("LabelTemplate") as Style; label1.Style = style;
Fazit: Benennen Sie a nicht
Style
mit dem SchlüsselwortTemplate
, Sie werden schließlich aStyle
und a verwechselnTemplate
, und Sie sollten es nicht tun , da dies zwei verschiedene Konzepte sind.quelle
Bitte überprüfen Sie, ob das Ergebnis null ist, sonst werden Sie traurig ... ... if (style! = Null) this.Style = style;
quelle
Möglicherweise eine alte Frage, aber wenn Sie versuchen, W10 UWP-App muss Ressourcen-Sammlung jedes Objekts oder Ressourcen-Sammlung des Anwendungsobjekts verwenden
KeyValuePair<object,object> styl = this.Resources .Where(x => x.Key.ToString() == "MyStyleTemplateName") .FirstOrDefault(); if (styl.Value != null) Style MyStyle = (Style)styl.Value;
Wobei MyStyleTemplateName als Ressource dafür definiert werden muss
quelle