• 张健文   2014/8/11 13:11:00
  • SilverLigtht学习--设置Silverlight控件样式
  • 关键字: SilverLigtht 样式 设置样式
  • 1、内联方式--即直接在控件内部利用其属性进行设置


    <UserControl x:Class="RemoveTextBoxBorder.Page"
        xmlns
    ="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x
    ="http://schemas.microsoft.com/winfx/2006/xaml" 
        Width
    ="400" Height="300">
        
    <Grid x:Name="LayoutRoot" Background="White">
            
    <Button Content="Button" Height="75" Width="125" BorderBrush="Green" Foreground="Blue" />
        
    </Grid>
    </UserControl>

    2、全局方式--在 App.xaml Resources 文件中进行定义
    当你在VS2008中创建Silverlight项目中,你会得到一个名叫 "App.xaml"的文件,此文件格式如下: 

     <Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:x
    ="http://schemas.microsoft.com/winfx/2006/xaml" 
                 x:Class
    ="RemoveTextBoxBorder.App"
                 
    >
        
    <Application.Resources>
        
    </Application.Resources>
    </Application>

     在此文件中你可以定义自己的样式,定义样式采用如下格式:

     <Style x:Key="样式名" TargetType="样式所针对的控件类型"> 
       
    <Setter Property="控件属性名" Value="控件属性值" />
     
    </Style>

     在本示例中我们在此文件加入如下样式定义,加入后的App.xaml文件内容如下

    <Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:x
    ="http://schemas.microsoft.com/winfx/2006/xaml" 
                 x:Class
    ="RemoveTextBoxBorder.App"
                 
    >
        
    <Application.Resources>
            
    <Style x:Key="ButtonStyleOne" TargetType="Button">
                
    <Setter Property="BorderBrush" Value="Green" />
                
    <Setter Property="Foreground" Value="Blue" />
                
    <Setter Property="BorderThickness" Value="4,4,4,4" />
            
    </Style>
            
    <Style x:Key="ButtonStyleTwo" TargetType="Button">
                
    <Setter Property="BorderBrush" Value="Blue" />
                
    <Setter Property="Foreground" Value="Green" />
            
    </Style>
        
    </Application.Resources>
    </Application>

    然后我们在控件的XAML文件中引用所定义的样式

    <UserControl x:Class="RemoveTextBoxBorder.Page"
        xmlns
    ="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x
    ="http://schemas.microsoft.com/winfx/2006/xaml" 
        Width
    ="400" Height="300">
        
    <Grid x:Name="LayoutRoot" Background="White">
            
    <Button Content="Button" Height="75" Width="125" Style="{StaticResource ButtonStyleOne}"  />        
        
    </Grid>
    </UserControl>

    3、在 C#代码中动态设置控件样式
     为了在代码中引用此控件,我们必须要为此控件命名,在此我们命名为"MyButton"

    <Button x:Name="MyButton" Content="Button" Height="75" Width="125" />     

    然后在Page.xaml的code-behind 文件中,在其构造函数中加入如下代码: 
    MyButton.Style = Application.Current.Resources["ButtonStyle"] as Style;
    后台代码如下:

         public partial class Page : UserControl
        {
            
    public Page()
            {
                InitializeComponent();
                MyButton.Style 
    = Application.Current.Resources["ButtonStyleOne"as Style;
            }
        }

     

  • 相关话题
  • 暂无相关话题哦