Silverlight2 边学边练 之六 设定风格
本篇的内容较为简单,主要针对Style进行一个练习。Style简要的说就是一些属性值的集合,
作用和CSS比较像。在Silverlight2中定义Style只能同用于同种类型的Element。如下代码:
<Style x:Key="ButtonStyleTwo" TargetType="Button"> <Setter Property="FontFamily" Value="Arial" /> <Setter Property="FontSize" Value="40" /> <Setter Property="Foreground" Value="Blue" /> <Setter Property="Background"></Style>
这就是一个定义好的Style,它只能用于Button组件,看看它如何产生作用,将Style直接嵌入Button:
<Button Content="Button"> <Button.Style> <Style TargetType="Button"> <Setter Property="FontFamily" Value="Arial" /> <Setter Property="FontSize" Value="40" /> <Setter Property="Foreground" Value="Blue" /> <Setter Property="Background"> <Setter.Value> <LinearGradientBrush> <GradientStop Color="Green" Offset="0"></GradientStop> <GradientStop Color="Red" Offset="1"></GradientStop> </LinearGradientBrush> </Setter.Value> </Setter> </Style> </Button.Style></Button>
当然也可以通过Resource的方式来设置Style,分别设置了两个Style:ButtonStyleOne、ButtonStyleTwo,
ButtonStyleOne设置为默认Style,ButtonStyleTwo用于在点击Button后切换Style。
XAML Code:
<UserControl x:Class="SilverlightTest.Page" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="400"> <UserControl.Resources> <Style x:Key="ButtonStyleOne" TargetType="Button"> <Setter Property="FontFamily" Value="Georgia" /> <Setter Property="FontSize" Value="40" /> <Setter Property="Foreground" Value="SlateGray" /> <Setter Property="Background"> <Setter.Value> <LinearGradientBrush> <GradientStop Color="Blue" Offset="0"></GradientStop> <GradientStop Color="Yellow" Offset="1"></GradientStop> </LinearGradientBrush> </Setter.Value> </Setter> </Style> <Style x:Key="ButtonStyleTwo" TargetType="Button"> <Setter Property="FontFamily" Value="Arial" /> <Setter Property="FontSize" Value="40" /> <Setter Property="Foreground" Value="Pink" /> <Setter Property="Background"> <Setter.Value> <LinearGradientBrush> <GradientStop Color="Green" Offset="0"></GradientStop> <GradientStop Color="Red" Offset="1"></GradientStop> </LinearGradientBrush> </Setter.Value> </Setter> </Style> </UserControl.Resources> <StackPanel x:Name="LayoutRoot" Background="White"> <Button x:Name="TestButton" Content="A Customized Button"
Style="{StaticResource ButtonStyleOne}" Click="Button_Click"></Button> </StackPanel> </UserControl>
用C#来切换Sytle,如下代码:
private void Button_Click(object sender, RoutedEventArgs e) { //切换Style:ButtonStyleTwo TestButton.Style = this.Resources["ButtonStyleTwo"] as Style; //修改Button文字
TestButton.Content = "Style Changed"; }
实例Demo效果(感谢GWPBrian指导SL嵌入cnblogs方法):
本例参考自《Pro Silverlight 2 in C# 2008》CHAPTER 11 ■ STYLES, TEMPLATES, AND CUSTOM CONTROLS
作者:李敬然(Gnie)
出处:{GnieTech} (http://www.cnblogs.com/gnielee/)
版权声明:本文的版权归作者与博客园共有。转载时须注明本文的详细链接,否则作者将保留追究其法律责任。
出处:{GnieTech} (http://www.cnblogs.com/gnielee/)
版权声明:本文的版权归作者与博客园共有。转载时须注明本文的详细链接,否则作者将保留追究其法律责任。
分类:
Silverlight
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述