概要:

终于知道Silverlight——App.xaml是干什么用的了,不仅可以用来封装样式(类似css),还可以制定控件模版。。。好强大的功能啊。

封装:

继续学习《一步一步学Silverlight 2系列(8):使用样式封装控件观感》。上面的例子只要照着做很容易就成功了,但是咱们的学会自己来啊,那我就自己试验试试。App.xaml代码:
代码

<Style x:Key="ell" TargetType="Ellipse">
<!--Style x:Key="此样式名称" TargetType="样式指定的控件"-->
<Setter Property="Fill" Value="Orange"></Setter>
<Setter Property="Width" Value="100"></Setter>
<Setter Property="Height" Value="100"></Setter>
<!--Setter Property="属性名" Value="属性值"-->
</Style>

MainPage.xaml代码:Style="{StaticResource ell}绑

代码

<Grid x:Name="LayoutRoot" Background="#46461F">
<Ellipse HorizontalAlignment="Left" Margin="10,10,0,0"
Name="ellipse1" Stroke="Black" StrokeThickness="1"
VerticalAlignment="Top"
Style="{StaticResource ell}"/>
</Grid>

很简单吧,如果遇到大量样式复用的时候,这样会很方便的。

控件模版:

第一个制定控件内容的试验不成功,查了一下说是Silverlight版本问题。不过这个例子做的挺漂亮的,个人希望也能做出类似的控件来。第二个用模版制定控件的试验倒是成功了,可是App.xaml中好多节点我仍然不了解,看来我学东西还停在表面呃。

再把app.xaml贴出来:   能看懂,却自己写不出来,真蛋疼。
代码

<Style x:Key="RoundButton" TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid x:Name="RootElement">
<Rectangle Width="200" Height="80" RadiusX="15" RadiusY="15">
<Rectangle.Fill>
<LinearGradientBrush StartPoint="0,0">
<GradientStop Color="#FFFFFF" Offset="0.0" />
<GradientStop Color="#EC04FA" Offset="1.0" />
</LinearGradientBrush>
</Rectangle.Fill>
<Rectangle.Stroke>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FCB2FD" Offset="0" />
<GradientStop Color="#FFFFFF" Offset="1" />
</LinearGradientBrush>
</Rectangle.Stroke>
</Rectangle>
<TextBlock Text="我也做出来了" FontSize="26" Foreground="White"
HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

第三个是个可以灵活用的例子,不像2中把样式写死了。我以前学过Asp.net自定义控件,这个很容易就看懂了。

代码

<Style x:Key="RoundButton" TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid x:Name="RootElement">
<Rectangle Width="{TemplateBinding Width}" Height="{TemplateBinding Height}"
RadiusX="15" RadiusY="15">
<Rectangle.Fill>
<LinearGradientBrush StartPoint="0,0">
<GradientStop Color="#FFFFFF" Offset="0.0" />
<GradientStop Color="#EC04FA" Offset="1.0" />
</LinearGradientBrush>
</Rectangle.Fill>
<Rectangle.Stroke>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#EC04FA" Offset="0" />
<GradientStop Color="#FFFFFF" Offset="1" />
</LinearGradientBrush>
</Rectangle.Stroke>
</Rectangle>
<ContentPresenter
Content="{TemplateBinding Content}"
FontSize="{TemplateBinding FontSize}"
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
Foreground="{TemplateBinding Foreground}">
</ContentPresenter>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

后记:

  李老师的代码被我copy的差不多了,但是越到后来越是觉得Silverlight深奥,尽管李老师讲的很精彩,但真正被我学到手能用的越来越少。现在觉得写笔记给自己复习用真的不错。总目录上一篇:vs2010 学习Silverlight学习笔记(6):全屏模式下一篇:vs2010 学习Silverlight学习笔记(8):使用用户控件

转载于:https://www.cnblogs.com/yaoge/archive/2010/05/09/1731090.html

vs2010 学习Silverlight学习笔记(7):控件样式与模板相关推荐

  1. WPF控件样式、模板

    初次写博客,新手请多指教. 写WPF已有一年有余了,平时在工作项目当中喜欢总结一些公用库,通用样式之类的,以便于日后工作中遇到,可以直接复用,提供工作效率. 本文提供 Windows.Button.S ...

  2. vs2010 学习Silverlight学习笔记(8):使用用户控件

    概要: 这个类似于封装控件样式.不过封装的是整个或是多个控件罢了,然后用的时候就可以直接引用过来了. 创建用户控: 这个也很简单,不过有几个地方需要注意下.这个就不照抄了,咱们也自己写一个. 步骤: ...

  3. vs2010 学习Silverlight学习笔记(11):数据与通信之WebClient

    概要: 基础知识终于学完了,我今天又从第一篇看到第十篇,发现明白了一些东西,还有忘记了部分东西.呵呵,咱不能猴子掰玉米,学了新的忘记旧的.要经常去复习,去用.这一篇是数据通信部分的第一篇,有些东西没接 ...

  4. 稳扎稳打Silverlight(33) - 3.0控件之AutoCompleteBox, DataPager

    [索引页] [源码下载] 稳扎稳打Silverlight(33) - 3.0控件之AutoCompleteBox, DataPager 作者:webabcd 介绍 Silverlight 3.0 控件 ...

  5. VS2010中如何实现自定义MFC控件

    本文简要讲解在VS2010中怎样实现自定义MFC控件的知识,以下是分步骤说明. 一.自定义一个空白控件  1.先创建一个MFC工程 NEW Project-->MFC-->MFC Appl ...

  6. silverlight体验之三:简单控件堆成个Login

    silverlight体验之三:简单控件堆成个Login 快过年了,回家心情急切呀.今天,明天,后天一上午.就可以回家啦,高兴,再记点小东西吧. 好像web项目都是从登陆开始的吧,这个也一样. 1. ...

  7. MUI框架-03-自定义MUI控件样式

    MUI框架-03-自定义MUI控件样式 开发请查阅:官方文档:http://dev.dcloud.net.cn/mui/ui/ 如何自定义MUI控件样式 mui 以 iOS 7的 UI 为基础,补充了 ...

  8. WPF Calendar 日历控件 样式自定义

    原文:WPF Calendar 日历控件 样式自定义 粗略的在代码上做了些注释 blend 生成出来的模版 有的时候 会生成 跟 vs ui界面不兼容的代码 会导致可视化设计界面 报错崩溃掉 但是确不 ...

  9. 共享几套silverlight2 toolkit最新的皮肤控件样式下载

    下载了最新的silverlight2 toolkit看看,发现里面的控件样式还是多漂亮的,与大家分享下. blue dark light orange purple red 样式源码下载:点击下载 当 ...

最新文章

  1. 在ASP.NET MVC下实现树形导航菜单
  2. 基于组件的.NET软件开发(1)
  3. 程序员不要去这样的公司
  4. 跟公务员稍稍的接触了下
  5. 符合.net准则的事件
  6. AJAX实现图片文件上传
  7. Python高级网络编程系列之基础篇
  8. 32--数组中重复的数字
  9. Python with上下文管理及自定义上下文管理
  10. 掌趣科技登榜2019中国品牌出海新秀50强 全球化战略持续发力
  11. 使用Tensorflow Lite创建一个Android AI应用
  12. Java开发工程师项目经验以及个人介绍实例
  13. 计算机怎么连接佳能打印机驱动,佳能打印机怎么连接电脑
  14. SU2021下载SketchUp2021最新下载安装教程SU草图大师2021下载安装
  15. numpy_abs和fabs
  16. CLIP CLAP
  17. 免费最新微信,QQ拦截查询代码接口
  18. os.path.dirname(path)
  19. 用马青公式计算π的c程序
  20. 相机不小心格式化了怎么恢复?内存卡格式化后能恢复数据吗

热门文章

  1. java正则表达式课程_通过此免费课程学习正则表达式
  2. (C++)自定义链表并写入
  3. 开源 | 蚂蚁金服分布式中间件开源第二弹:丰富微服务架构体系
  4. pandas中DataFrame的ix,loc,iloc索引方式的异同
  5. 纯JS导出excel(支持中文)
  6. 查看JDK的历史版本
  7. 学习OpenCV——配置CUDA环境
  8. bzoj 1691: [Usaco2007 Dec]挑剔的美食家
  9. javascript通过json数据按格式生成一个按字母分类排序的分类信息表
  10. awk命令使用和取出数据的最大值,最小值和平均值