Dans App.xaml, j'ai le code suivant:
<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>
Ceci est destiné à fournir un modèle générique pour mes étiquettes.
Dans le code XAML principal, j'ai la ligne de code suivante:
<Label Content="Movies" Style="{StaticResource LabelTemplate}" Name="label1" />
Cependant, j'aimerais initialiser la propriété Style par le biais du code. J'ai essayé:
label1.Style = new Style("{StaticResource LabelTemplate}");
et
label1.Style = "{StaticResource LabelTemplate}";
Aucune solution n'était valide.
Toute aide serait appréciée :).
Où dans le code essayez-vous d'obtenir le style? Code derrière?
Vous devriez écrire ceci:
Si vous êtes en code-behind:
Style style = this.FindResource("LabelTemplate") as Style;
label1.Style = style;
Si vous êtes ailleurs
Style style = Application.Current.FindResource("LabelTemplate") as Style;
label1.Style = style;
Note de bas de page: Ne nommez pas un Style
avec le mot clé Template
, vous finirez par confondre un Style
et un Template
, et vous ne devriez pas, car ce sont deux concepts différents.
S'il vous plaît vérifier le résultat de style null ou vous serez triste ... ... si (style! = Null) this.Style = style;
Peut-être une vieille question, mais si vous essayez W10 UWP app doit utiliser la collection de ressources de chaque objet ou la collection de ressources de l'objet Application
KeyValuePair<object,object> styl = this.Resources
.Where(x => x.Key.ToString() == "MyStyleTemplateName")
.FirstOrDefault();
if (styl.Value != null)
Style MyStyle = (Style)styl.Value;
Où MyStyleTemplateName doit être défini comme une ressource de this