微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

全面解析Silverlight Toolkit 主题控件的用法

大家都知道Toolkit有一系列的Theme主题控件,Toolkit的示例中也介绍了它的一些用法,但是那个示例的用法太繁琐,而且不是很实用,特别是在绑定的时候;下面我将介绍主题控件的更实用的用法,它可以使我们更方便的使用和更换主题

 

一、创建示例项目

首先,在VS或者Blend中创建一个Silverlight应用程序

为了演示动态更改自定义主题效果我们添加2个自定义主题,在Silverlight应用程序项目中添加Themes文件夹,在此文件夹下添加资源文件Theme.xaml,内容如下:

    

接着在Theme文件夹中添加一个资源文件Theme1.xaml,内容如下:

 

最后为了能演示Toolkit主题用法,我们还要添加几个Toolkit主题的引用,如下:

 

   

二、使用固定主题控件

固定主题也就是Toolkit示例中的用法,但是Toolkit示例中是通过动态创建固定主题来达到换肤的效果,这里我们不使用这种方法,而只是演示固定主题用法

首先打开MainPage.xaml,添加一个StackPanel容器,在工具箱中,找到BureauBlackTheme,添加BureauBlackTheme控件到StackPanel容器,在BureauBlackTheme中添加一个button,这样我们就可以看到button的样式已经更改了,为了区分,我们在StackPanel添加一个Button控件显示全局样式,代码如下:

 

运行截图如下:

 

 

三、动态更改全局主题

我们可以通过两种方法设置全局主题

public static void SetApplicationThemeUri(Application app,Uri themeUri);

public static bool GetIsApplicationTheme(Application app); //判断当前主题是否是全局主题
public static void SetIsApplicationTheme(Application app,bool value);  // 设置当前主题为全局主题

 

下面我们来看看如何使用:

在StackPanel容器中添加两个按钮,通过点击它们来更改全局样式,xaml代码如下:

事件处理方法如下:

   

点击按钮1,运行结果如下:

 

点击按钮2,运行结果如下:

 

 

可以看出来,固定主题依然没有改变

 

四、动态更改局部主题

这里我们依然通过两种方式更改局部主题,但是注意这里我们不是使用Theme类,而是使用Theme主题控件,通过设置ThemeUri类设置局部主题,在工具箱中找到Theme控件,添加到StacakPanel控件中,在主题控件中添加2个按钮,通过点击他们更改局部主题,xmal代码如下:

事件处理代码如下:

 

点击按钮1,运行效果如下:

 

点击按钮2,运行结果如下:

 

以上几种方法,除了固定主题,其他两种方法,都可以在mvvm等数据绑定的框架中使用而达到动态换肤的目的。

 

本文示例下载地址:点击下载

 

在线演示地址:在线演示

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐