Установка свойства стиля метки WPF в коде?



В Приложение.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" />


однако, я хотел бы инициализировать свойство стиля через код. Я пробовал:



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


и



label1.Style = "{StaticResource LabelTemplate}";


ни одно из решений не было действительным.



любая помощь будет оценили :).

675   3  

3 ответов:

где в коде вы пытаетесь получить стиль? Код позади?

вы должны написать это:

если ты в коде:

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

если ты где-нибудь еще

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

внизу Примечание: не назвать Style ключевое слово Template, вы в конечном итоге в конечном итоге путает Style и Template, и вы не должны, так как это две разные концепции.

пожалуйста, проверьте результат null стиле или вам будет грустно... ... если (стиль != недействительный) этот.Стиль = стиль;

может быть, старый вопрос, но если вы пытаетесь W10 UWP приложение должно использовать коллекцию ресурсов каждого объекта или коллекции ресурсов объекта приложения

KeyValuePair<object,object> styl = this.Resources
    .Where(x => x.Key.ToString() == "MyStyleTemplateName")
    .FirstOrDefault();
if (styl.Value != null)
    Style MyStyle = (Style)styl.Value;

здесь MyStyleTemplateName должен быть определен как ресурс этой

Comments

    Ничего не найдено.