网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

[Silverlight] 改进 Nikhil Kothari 的换肤方案:允许自

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/12/13

1 2 下一页

  在 Silverlight 下换肤的实现中,我介绍了 Nikhil Kothari 实现的一种 Theme 方案。但是实践了一下,我很快发现有个小小的缺陷。作者的皮肤定义是仅针对系统自带的控件的,如 Button, T extBox, CheckBox 等,而对于我们自定义的控件的换肤问题没有很好的解决。从下列代码中可见一斑:

  (/Framework/Applications/Theme.cs)

public string GetXML() { 
  string resourceDictionaryFormat = 
@"<UserControl 
XMLns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation"" 
xmlns:x=""http://schemas.microsoft.com/winfx/2006/xaml"" 
xmlns:vsm=""clr-namespace:System.Windows;assembly=System.Windows""> 
<UserControl.Resources> 
{0} 
</UserControl.Resources> 
</UserControl>"; 
 
  _content.Replace(@"xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation""", ""); 
  _content.Replace(@"xmlns:x=""http://schemas.microsoft.com/winfx/2006/xaml""", ""); 
  _content.Replace(@"xmlns:vsm=""clr-namespace:System.Windows;assembly=System.Windows""", ""); 
 
  return String.Format(resourceDictionaryFormat, _content.ToString()); 
 }

  可以看出这里名称空间都是写死了的,不支持任何扩展。

  而实际使用中,我们可能会对某个第三方控件定义样式。比如:

<UserControl 
  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" 
  xmlns:liquid="clr-namespace:Liquid;assembly=Liquid" 
  mc:Ignorable="d" 
  x:Class="UserControl" 
  d:DesignWidth="640" d:DesignHeight="480"> 
  <UserControl.Resources> 
    <Style x:Key="MyLiquidDialog" TargetType="liquid:Dialog"> 
      <!-- 略 --> 
    </Style>   
  </UserControl.Resources> 
 
  <Grid x:Name="LayoutRoot" Background="White" /> 
</UserControl>

(责任编辑:admin)

网学推荐

免费论文

原创论文

设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号