原文地址http://www.cnblogs.com/Joetao/articles/1899664.html

本篇学习了Silverlight中的控件继承关系,了解控件的继承关系对应我们操作控件,使用控件的样式,模板有很大的帮助!下面是我们常用控件继承和派生关系类图!这里只是列出了部分空控件关系!

关于继承关系的一点理解:

1)FrameworkTemplate类:创建元素的元素树(用于*.xaml文件中) 如下图:

(1)ControlTemplate类:定义控件的外观,这通常是多个元素的组合(用于*.xaml文件中)

(2)ItemsPanelTemplate类:ItemsControl 的项的布局创建的面板

(3)DataTemplate类: 描述数据对象的可视结构。

2)FrameworkElement:有Style属性,可以Style属性修改FrameworkElement样式。它的派生类具有Style属性.TextBlock除外

3)Control继承自FrameworkElement:Style属性,还有Template属性:如下图    

Template属性:用于定义 Control 的外观的模板,对应于 ControlTemplate

(1) ContentControl:继承自Control,Style、Template、 ContentTemplate属性

ContentTemplate属性:获取或设置用于显示 ContentControl 内容的数据模板。对应于DataTemplate

Content 属性:可以是任何类型的对象,例如字符串、UIElement 或 DateTime。当 Content 设置为 UIElement 时,ContentControl 中将显示 UIElement。

(2)ItemsControl:继承自Control,具有 Style、Template、ItemTemplate、ItemsPanel属性

ItemTemplate属性:获取或设置用于显示每个项的 DataTemplate。

ItemsPanel属性:获取或设置模板,它定义了控制项的布局的面板。对应于ItemsPanelTemplate

(转)Silverlight控件关系理解的更多相关文章

  1. silverlight 控件样式动态绑定

    <telerik:RadDiagram x:Name="diagram1" GraphSource="{Binding GraphSource, Mode=TwoW ...

  2. 浅谈对MJRefresh(上)下拉刷新控件的理解

    MJRefresh GitHub地址:https://github.com/CoderMJLee/MJRefresh 利用业余时间研究了一下iOS的开发,发现OC特定的语法方式吸引了我,而且iOS开发 ...

  3. ListView控件的理解——自洽理论

    写在前面的话: *标题中已经说明,是自洽理论.因此,有几率会有理解错误.但是,你不可以因此骂我. -我这个人经不起别人的批评,如果你批评我,我就,我就.... ## <第一行代码>读书笔记 ...

  4. silverlight控件阴影效果示例

    <ScrollViewer MaxHeight="400" VerticalScrollBarVisibility="Auto" HorizontalSc ...

  5. silverlight 控件自定义样式 实现方法

    1:在app.xaml中加入需实现的样式,如: <Application.Resources> <Style x:Key="NodeStyle" TargetTy ...

  6. APP常用控件学习理解

    1.TextView 示例: layout_width指的是文本的所占宽度(不一定填充满),layout_height指的是文本所占高(不一定填充满),warp_coonent :包裹文本宽度 mat ...

  7. Silverlight控件——如何提升应用程序信任度与问题解决

    从silverlight5开始,可以在项目设置中勾选“在浏览器内运行时需要提升的信任”来达到在浏览器内运行提权silverlight客户端的目的,在个特性很有用处. 可我使用这个功能时遇到了一个奇怪的 ...

  8. 【原创】有关Silverlight控件DataGrid的绑定数据后单元格单独复制的功能实现分析

    前些日子,公司新需求需要对silverlight的datagrid进行局部任意单元格数据可复制,查阅了半天网络资料愣是没找到相关资料,开始还以为是silverlight的bug根部无法实现, 最后还是 ...

  9. SilverLight 控件ListBox中的SelectionChanged事件

    出现的问题: ListBox 中给了它一个这样的事件SelectionChanged="NumBasket_SelectionChanged" 也就是单击某行就会触发的事件,要实现 ...

随机推荐

  1. xtrareport实现指定记录数以及填补空白行(网上整理)

    在Detail的事件中: int i=0; private void OnBeforePrint(object sender, System.Drawing.Printing.PrintEventAr ...

  2. php学习笔记-基础篇

    1."var_dump"函数可以将变量的数据类型显示出来. 2."memory_get_usage"获取当前PHP消耗的内存. 3.php中的字符串型分单引号, ...

  3. 初步涉及JDBC

    一.为什么要使用JDBC: 1.在之前的学习中,我们都是通过控制台来输入信息,创建对象,然后再输出信息,但是这样无法保存数据,每次程序运行都需要重新输入,很麻烦. 2. 在这样的情况下,我们就需要利用 ...

  4. mysql 简单优化方法

    优化步骤:1.查看SQL是否可以优化.2.查看索引是否可以优化.3.查看表结构是否可以优化. show table status from databases like 'tablename%'; / ...

  5. javascript中获取元素节点的文本

    <div id="test"> <strong>i'm strong</strong> </div> 1.elementNode.i ...

  6. Spring 4 官方文档学习(十三)集成其他web框架

    重点是通用配置,非常建议看一下!有助于理解Spring的ApplicationContext与Servlet Container的关系! 1.介绍 Spring Web Flow SWF目标是成为we ...

  7. python文件、数据库读写编码的问题

    读写utf-8文件 fh = open(file_name, 'r', encoding = 'UTF-8') 读写数据库utf-8格式 connect = pymysql.connect(host= ...

  8. MySQL创建一个具有root权限的用户

    grant all privileges on *.* to 'user'@'host' identified by 'password' WITH GRANT OPTION MAX_QUERIES_ ...

  9. cookie session URL重写 与考试

    状态管理.Cookie.Session.URL重写 HTTP协议:无状态的连接(每次连接都是新的请求)1.隐藏字段 <input type="hidden" name=&qu ...

  10. javascript:history.go()和History.back()的区别(转载)

    javascript:history.go()和History.back()的区别       <input type=button value=刷新 onclick="window. ...