zoukankan      html  css  js  c++  java
  • WP8.1 UI 编程 九、控件编程

    1. 控件继承关系

           UIElement

                 ↑

    FrameworkElement

       ↑                  ↑

    Panel           Control

                        ↑      ↑

     ContentControl   ItemsControl

    UIElement是具有可视化外挂并且可以处理基本输入的大多数对象的基类,但不公开构造方法,其作用就是作为Framework的基类,对UI的基础操作进行封装。

    FrameworkElement扩展了UIElement,并添加布局相关方法和属性和对数据绑定的支持。由它派生的控件:TextBlock,Border,Image,MediaElement,Popup,实现一些非常基础的功能,经常作为其它控件内部封装的元素。

    Panel是布局控件的基类。由它派生的控件:Canvas,Grid ,StackPanel。

    Control是用户界面元素的基类,这些元素使用Template来定义其外观。由它派生的普通控件:TextBox,PasswordBox,ProgressBar,ScrollBar,Slider等,这类控件的典型特征是可以自定义或修改其数据模板。

    ContentControl是包含单项内容的控件,其Content属性可以是任何Object对象,甚至是UIElement,其它类型对象将显示该对象的字符串表示形式。内容控件:ContentControl本身,以及由它派生的控件Button,RadioButton,HyperlinkButton,CheckBox,ScrollViewer。它的内部包含ContentPresenter,例如Button的:

    <ContentPresenter x:Name="ContentPresenter" AutomationProperties.AccessibilityView="Raw" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" Foreground="{TemplateBinding Foreground}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>

    ItemsControl是呈现集合项内容的控件,其ItemsSource属性知道为某个对象集合的引用,通过绑定的方式在ItemTemplate里呈现数据。列表控件:ItemsControl本身,以及由它派生的控件ListBox,Pivot,ListView,GridView。重要属性有Items,用于生成控件内容的集合;ItemsPanel,布局面板;ItemsSource,内容集合;ItemTemplate,每个项的DataTemplate。 

    系统控件的默认样式可以用Blend查看。修改默认样式可以实现简单的自定义控件。

    2. UserControl自定义控件,定义方式类似于页面,Code-Behind模式

    3. 继承控件基类实现自定义控件

    必须动态加载样式文件来创建控件,样式文件必须放在Themes文件夹的generic.xaml,并在控件类的构造器中设置控件默认Style。

    OnApplyTemplate方法是每当调用ApplyTemplate方法时调用的,即UI元素在显示前都会调用此方法。

    GetTemplateChild方法能获取具有特定x:Name属性的子控件(在Style中定义的),在OnApplyTemplate中以此来初始化。

  • 相关阅读:
    Java高级工程师面试题总结及参考答案
    Java面试通关要点汇总整理【终极版】
    40道Java基础常见面试题及详细答案
    Java方向如何准备BAT技术面试答案(汇总版)
    10-01 Java 类,抽象类,接口的综合小练习--运动员和教练
    div在页面垂直居中方法---增强改进版
    TortoiseSVN切换更改登录账号密码
    09-04 java 接口
    09-03 Java 抽象类
    09-02 java 多态
  • 原文地址:https://www.cnblogs.com/wylz/p/4034119.html
Copyright © 2011-2022 走看看