En App.xaml, tengo el siguiente código:
<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>
Esto está destinado a proporcionar una plantilla genérica para mis etiquetas.
En el código XAML principal, tengo la siguiente línea de código:
<Label Content="Movies" Style="{StaticResource LabelTemplate}" Name="label1" />
Sin embargo, me gustaría inicializar la propiedad Style a través del código. Yo he tratado:
label1.Style = new Style("{StaticResource LabelTemplate}");
y
label1.Style = "{StaticResource LabelTemplate}";
Ninguna solución fue válida.
Cualquier ayuda sería apreciada :).
c#
wpf
user-interface
label
Daniel
fuente
fuente
Respuestas:
¿En qué parte del código intentas conseguir el estilo? ¿Código detrás?
Deberías escribir esto:
Si está en código subyacente:
Style style = this.FindResource("LabelTemplate") as Style; label1.Style = style;
Si estas en otro lugar
Style style = Application.Current.FindResource("LabelTemplate") as Style; label1.Style = style;
Nota inferior: no nombre a
Style
con la palabra claveTemplate
, eventualmente terminará confundiendo aStyle
y aTemplate
, y no debería, ya que son dos conceptos diferentes.fuente
Por favor, compruebe si hay un resultado de estilo nulo o se entristecerá ... ... if (style! = Null) this.Style = style;
fuente
Tal vez sea una pregunta anterior, pero si está probando la aplicación W10 UWP, debe usar la colección de recursos de cada objeto o la colección de recursos del objeto Aplicación
KeyValuePair<object,object> styl = this.Resources .Where(x => x.Key.ToString() == "MyStyleTemplateName") .FirstOrDefault(); if (styl.Value != null) Style MyStyle = (Style)styl.Value;
Donde MyStyleTemplateName debe definirse como un recurso de este
fuente