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

    效果如图:

     

    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 有问题可以共同讨论

  • 相关阅读:
    系统维护相关问题
    Python环境维护
    哈希表解决字符串问题
    论文笔记二:《A Tutoral on Spectral Clustering》
    论文笔记之哈希学习比较--《Supervised Hashing with Kernels》《Towards Optimal Binary Code Learning via Ordinal Embedding》《Top Rank Supervised Binary Coding for Visual Search》
    Java中String、StringBuffer、StringBuilder的比较与源 代码分析
    浙大pat1040 Longest Symmetric String(25 分)
    浙大pat1039 Course List for Student(25 分)
    浙大pat---1036 Boys vs Girls (25)
    百炼oj-4151:电影节
  • 原文地址:https://www.cnblogs.com/luxiaofeng54/p/1877323.html
Copyright © 2011-2022 走看看