Bab*_*bad 4 c# wpf xaml styles
我在WPF编程(c#).我试图在一套风格中改变价值.
我的风格是:
<Style TargetType="Control" x:Key="st">
<Setter Property="FontFamily" Value="Tahoma"/>
<Setter Property="FontSize" Value="14"/>
</Style>
Run Code Online (Sandbox Code Playgroud)
我在一个按钮中使用它:
<Button x:Name="btnCancel" Style="{StaticResource st}" Content="??????" Canvas.Left="30" Canvas.Top="18" Width="139" Height="53" FontFamily="2 badr" FlowDirection="LeftToRight" Click="btnCancel_Click_1" />
Run Code Online (Sandbox Code Playgroud)
而我试图做的是这段代码:
Style style = new Style();
style = (Style) Resources["st"];
Setter setter =(Setter) style.Setters[1];
setter.Value = 30;
Run Code Online (Sandbox Code Playgroud)
设置字体大小后30我得到这个错误?
在使用(密封)"SetterCollectionBase"之后,无法修改它
我怎么解决这个问题?
样式只能设置一次(编译后密封),不能用代码更改
所以解决方案是
通过代码创建样式
Style st = new Style(typeof(System.Windows.Controls.Control));
st.Setters.Add(new Setter(Control.FontFamilyProperty, new FontFamily("Tahoma")));
st.Setters.Add(new Setter(Control.FontSizeProperty, 14.0));
Run Code Online (Sandbox Code Playgroud)以后你可以改变它
st.Setters.OfType<Setter>().FirstOrDefault(X => X.Property == Control.FontSizeProperty).Value = 30.0;//safer than Setters[1]
Run Code Online (Sandbox Code Playgroud)
要么
直接更改属性
btnCancel.FontSize=30.0;
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
7165 次 |
| 最近记录: |