Silverlight 皮肤的使用(二)

Silverlight 皮肤的使用(二)

开发环境:vs2010+sl4+ Toolkit April 2010

 

 

 

1、 安装好Microsoft Silverlight 4 Toolkit April 2010

 

2、 打开Toolkit  安装目录下的 Themes/xaml 文件夹 , 你可以看到非常多的 xaml 主题文件

如图:

3、 新建一个silverlight 项目,并在项目下建一个 Themes 文件夹

4、 把Toolkit  安装目录下的 Themes/xaml 文件夹下的文件拷贝到 Themes 下

效果如图:

 

5、引入 dll ,命名空间(有好多,可以编译根据错误提示查看需要引入什么)

效果如图:

6、 设计Demo 界面

右上角放一个combobox  用来选择皮肤

中间爱放啥就放啥

7、 关键代码

//        

String  skinStr =  "Themes/System.Windows.Controls.Theming."  + skinKey +  ".xaml" ;

//获取资源

Uri  uri =  new   Uri (skinStr, UriKind .Relative);

//应用猪蹄

Theme .SetApplicationThemeUri( App .Current, uri);

 

 

8、 源码

Xaml:

< UserControl  x : Class ="SkinsDemoTwo.MainPage"

     xmlns ="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

     xmlns : x ="http://schemas.microsoft.com/winfx/2006/xaml"

     xmlns : d ="http://schemas.microsoft.com/expression/blend/2008"

     xmlns : mc ="http://schemas.openxmlformats.org/markup-compatibility/2006"

     mc : Ignorable ="d"

     d : DesignHeight ="300"  d : DesignWidth ="400"  xmlns : sdk ="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk">

 

     < Grid  x : Name ="LayoutRoot"  Background ="White">

         < Grid.RowDefinitions >

             < RowDefinition  Height ="30" />

             < RowDefinition  Height ="*" />

         </ Grid.RowDefinitions >

         < ComboBox  x : Name ="cbSkins"  Grid.Row ="0"  Height ="30"  Width ="100"  HorizontalAlignment ="Right"  SelectionChanged ="ComboBox_SelectionChanged">

           

         </ ComboBox >

         < sdk : Calendar  Grid.Row ="1"  Height ="168"  HorizontalAlignment ="Left"  Margin ="24,38,0,0"  Name ="calendar1"  VerticalAlignment ="Top"  Width ="171" />

         < Button  Content ="Button"  Grid.Row ="1"  Height ="115"  HorizontalAlignment ="Left"  Margin ="236,64,0,0"  Name ="button1"  VerticalAlignment ="Top"  Width ="144" />

     </ Grid >

</ UserControl >

 

 

 

Cs:

using  System;

using  System.Collections.Generic;

using  System.Linq;

using  System.Net;

using  System.Windows;

using  System.Windows.Controls;

using  System.Windows.Documents;

using  System.Windows.Input;

using  System.Windows.Media;

using  System.Windows.Media.Animation;

using  System.Windows.Shapes;

using  System.Windows.Controls.Theming;

 

namespace  SkinsDemoTwo

{

     public   partial   class   MainPage  :  UserControl

    {

         public  MainPage()

        {

            InitializeComponent();

            initSkins();

        }

 

         void  initSkins() { 

             // <ComboBoxItem Content="BubbleCreme"></ComboBoxItem>

             //<ComboBoxItem Content="BureauBlack"></ComboBoxItem>

             //<ComboBoxItem Content="BureauBlue"></ComboBoxItem>

             //<ComboBoxItem Content="ExpressionDark"></ComboBoxItem>

             //<ComboBoxItem Content="ExpressionLight"></ComboBoxItem>

             //<ComboBoxItem Content="RainierOrange"></ComboBoxItem>

             //<ComboBoxItem Content="RainierPurple"></ComboBoxItem>

             //<ComboBoxItem Content="ShinyBlue"></ComboBoxItem>

             //<ComboBoxItem Content="ShinyRed"></ComboBoxItem>

             //<ComboBoxItem Content="SystemColors"></ComboBoxItem>

             //<ComboBoxItem Content="TwilightBlue"></ComboBoxItem>

             //<ComboBoxItem Content="WhistlerBlue"></ComboBoxItem>

 

            cbSkins.Items.Add( "BubbleCreme" );

            cbSkins.Items.Add( "BureauBlack" );

            cbSkins.Items.Add( "BureauBlue" );

            cbSkins.Items.Add( "ExpressionDark" );

            cbSkins.Items.Add( "ExpressionLight" );

            cbSkins.Items.Add( "RainierOrange" );

            cbSkins.Items.Add( "RainierPurple" );

            cbSkins.Items.Add( "ShinyBlue" );

            cbSkins.Items.Add( "ShinyRed" );

            cbSkins.Items.Add( "SystemColors" );

            cbSkins.Items.Add( "TwilightBlue" );

            cbSkins.Items.Add( "WhistlerBlue" );

 

 

        }

 

         private   void  ComboBox_SelectionChanged( object  sender,  SelectionChangedEventArgs  e)

        {

             //获?取?你?选?择?的?主÷题琣

             String  skinKey = cbSkins.SelectedValue.ToString();

 

             //匹¥配?路·径?

             String  skinStr =  "Themes/System.Windows.Controls.Theming."  + skinKey +  ".xaml" ;

 

             //获?取?主÷题琣资哩?源′

             Uri  uri =  new   Uri (skinStr, UriKind .Relative);

 

             //应畖用?主÷题琣

             Theme .SetApplicationThemeUri( App .Current, uri);

 

        }

    }

}

6、 效果图

 

 

欢迎转载,请注明出处

QQ454162034 有问题可以共同讨论

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值