在Silverlight应用程序中控件的样式一般都是在编译前定义好的,并且用Style标签来应用样式。但是个别情况下,需要在运行时候动态改变样式。在下边的例子中会看到点击按钮后,通过后台代码来改变按钮的样式。
首先在全局样式里边里边定义两个不同的样式
<Style x:Name="btnAdd" TargetType="Button">
<Setter Property="Width" Value="150" />
<Setter Property="Height" Value="30" />
<Setter Property="Content" Value="Add" />
<Setter Property="Foreground" Value="Red" />
</Style>
<Style x:Name="btnEdit" TargetType="Button">
<Setter Property="Width" Value="350" />
<Setter Property="Height" Value="130" />
<Setter Property="Content" Value="Edit" />
<Setter Property="Foreground" Value="Green" />
<Setter Property="FontSize" Value="44" />
<Setter Property="Background" Value="Red" />
</Style>
在页面中定义一个Button,Button默认的样式是btnAdd
<Button x:Name="btnTest" Style="{StaticResource btnAdd}" Click="Button_Click" Margin="50" />
效果
后台Button的click事件
Style btnStyle = App.Current.Resources["btnEdit"] as Style;
btnTest.Style = btnStyle;
点击后效果
这样就达到了在运行时候改变控件样式的目的。