zoukankan      html  css  js  c++  java
  • 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

    效果如图:

     

     

    6、设计Demo界面

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

    中间爱放啥就放啥

    7、关键代码

    //

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

    //获取资源

    Uri uri = newUri(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

    {

        publicpartialclassMainPage : 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");

     

     

            }

     

            privatevoid ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)

            {

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

                String skinKey = cbSkins.SelectedValue.ToString();

     

                //匹¥配?路·径?

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

     

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

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

     

                //应畖用?主÷题琣

                Theme.SetApplicationThemeUri(App.Current, uri);

     

            }

        }

    }

    6、效果图

     

     

    自定义主题也可以使用类似的方法

  • 相关阅读:
    数据结构和算法(Golang实现)(13)常见数据结构-可变长数组
    数据结构和算法(Golang实现)(5)简单入门Golang-接口
    数据结构和算法(Golang实现)(3)简单入门Golang-流程控制语句
    数据结构和算法(Golang实现)(4)简单入门Golang-结构体和方法
    分库分布的几件小事(一)数据库如何拆分
    分布式的几件小事(十二)分布式事务
    分布式的几件小事(十一)分布式session如何实现
    分布式的几件小事(十)分布式锁是啥
    分布式的几件小事(九)zookeeper都有哪些使用场景
    分布式的几件小事(八)分布式服务接口请求的顺序性如何保证
  • 原文地址:https://www.cnblogs.com/zhijianliutang/p/2250582.html
Copyright © 2011-2022 走看看