在代码中设置 WPF 标签的 Style 属性
本文关键字:Style 属性 标签 WPF 代码 设置 | 更新日期: 2023-09-27 18:34:45
在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}";
这两种解决办法都无效。
任何帮助将不胜感激:)。
您尝试在代码中的何处获取样式?代码隐藏?
你应该这样写:
如果你在代码隐藏中:
Style style = this.FindResource("LabelTemplate") as Style;
label1.Style = style;
如果你在别的地方
Style style = Application.Current.FindResource("LabelTemplate") as Style;
label1.Style = style;
底部说明:不要用关键字Template
命名Style
,你最终会混淆Style
和Template
,你不应该这样做,因为这是两个不同的概念。
请检查空样式的结果,否则你会很难过... ... if (style != null( 这。风格 = 风格;
也许是一个老问题,但如果你正在尝试 W10 UWP 应用必须使用每个对象的资源集合或应用程序对象的资源集合
KeyValuePair<object,object> styl = this.Resources
.FirstOrDefault(x => x.Key == "MyStyleTemplateName");
if (styl.Value != null)
Style MyStyle = (Style)styl.Value;
其中 MyStyleTemplateName 必须定义为此资源