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博客园博客,原文链接:http://www.cnblogs.com/gnielee/archive/2009/08/02/silverlight2-learning-style.html,如需转载请自行联系原作者

相关文章
|
7月前
|
索引 Windows
CocosCreator3.8研究笔记(十二)CocosCreator 字体资源理解
CocosCreator3.8研究笔记(十二)CocosCreator 字体资源理解
127 0
|
7月前
|
缓存 前端开发 算法
CocosCreator3.8研究笔记(十六)CocosCreator 2D对象
CocosCreator3.8研究笔记(十六)CocosCreator 2D对象
129 0
|
7月前
|
JavaScript 数据安全/隐私保护 Android开发
CocosCreator3.8研究笔记(十九)CocosCreator UI组件(三)(1)
CocosCreator3.8研究笔记(十九)CocosCreator UI组件(三)
115 0
|
7月前
|
前端开发 Android开发
CocosCreator3.8研究笔记(十九)CocosCreator UI组件(三)(3)
CocosCreator3.8研究笔记(十九)CocosCreator UI组件(三)
|
7月前
|
Android开发 iOS开发 容器
CocosCreator3.8研究笔记(十九)CocosCreator UI组件(三)(2)
CocosCreator3.8研究笔记(十九)CocosCreator UI组件(三)
168 0
|
7月前
|
缓存 自然语言处理 BI
CocosCreator3.8研究笔记(二十)CocosCreator UI组件(四)
CocosCreator3.8研究笔记(二十)CocosCreator UI组件(四)
119 0
|
Web App开发 算法
软件破解初级实例教程(附工具附图)
最近在群里总是看到很多新朋友在问: 1、“新手怎么学破解啊?”(这是标准的伸手党,baidu google其实很好用) 2、“哎呀XX大牛,我什么基础都没有啊我不会汇编,不会C更不会C++还不会…………总之高手会的我都不会,我能学么?”(明确的告诉你,你能!你不和唐僧一样罗嗦的话你一定能。
6891 0
|
iOS开发
iOS动画开发之五——炫酷的粒子效果(一)
iOS动画开发之五——炫酷的粒子效果
342 0
|
iOS开发
iOS动画开发之五——炫酷的粒子效果(二)
iOS动画开发之五——炫酷的粒子效果
297 0
iOS动画开发之五——炫酷的粒子效果(二)
|
Android开发 Java API
自定义控件探索之旅一2(笔记)
前言:这是自定义控件探索之旅的第二篇,上一篇主要介绍了安卓自定义控件的基础,这些基础内容主要有Android的坐标系、角度与弧度的换算、安卓的颜色介绍。这一篇我们继续自定义控件的探索之旅。
943 0