zoukankan      html  css  js  c++  java
  • WPF类层次结构

    WPF包含上千个类,有很深的层次结构。为了帮助理解类之间的关系

    下图展示了WPF的层次结构

    DispatcherObject类

        Dispatcher是一个抽象基类,用于绑定到一个线程上的类。与Windows窗体类似,WPF也要求仅从创建线程中调用方法和属性。WPF应用程序使用为人熟知的单线程亲和(Single-Thread Affinity,STA)模型,这意味着整个用户界面由单个线程拥有。从另一个线程与用户界面进行交互是不安全的。通过继承自DispathcerObject类,用户界面中的每个元素都可以检查代码是否在正确的线程上运行,并能通过访问调度程序为用户界面线程封送代码。

    Application类

        在WPF应用程序中,会创建Application类的一个实例.这个类实现了Singleton模式,用于访问应用程序的窗口,资源和属性

    DependencyObject类

        DenpendencyObject是所有支持依赖属性的类的基类。依赖属性可以依赖其他输入,例如主题和用户喜好。依赖属性与数据绑定,动画,资源和样式一起使用。

    Visual类

        所有可见元素的基类都是Visual。这个类包含点击测试和转换等特性

    UIElement类

        所有需要基本显示功能的WPF元素的抽象基类是UIElement。这个类提供了鼠标移动,拖放,按键的通道和起泡事件;提供了可以由派生类重写的虚显示方法;以及布局方法。WPF不再使用Window句柄,这个类就可以用Window句柄

    FrameworkElement类

        FrameworkElement派生自基类UIElement,实现了由基类定义的方法的默认代码

    Shape类

        Shape是所有图形元素的基类,例如Line,Ellipse,Polygon,Rectange

    Control类

        Control派生自FrameworkElement,是所有用户交互元素的基类

    Panel类

        Panel派生自FrameworkElement,是所有面板的抽象基类,这个类的Children属性用于面板中的所有UI元素,定义了安排子控件的方法。派生自Panel的类为子控件的布置方式定了不同的类,例如WrapPanel,StackPanel,Canvas,Grid

    ContentControl类

        是所有有单个内容的控件的基类,如Label,Button。 内容控件的默认样式是受限制的,但可以使用模版改变其外观,ContentControl模型的类型具有一个Content属性.Content属性的类型为Object因此ContentControl中可以放置的内容没有任何限制

      以下控件在使用ContentControl内容模型:

    Button,ButtonBase,CheckBox,ComboBoxItem,ContentControl,Frame,GridViewColumHeader,GroupItem,Label,ListBoxItem,ListViewItem,NavigationWindow,RadioButton,RepeatButton,ScrollViewer,StatusBarItem, ToggleButton, ToolTip, UserControl, Window

    Content中只能放置一个控件

    HeaderedContentControl类

        HeaderedContentControl类继承ContentControl类, 表示带有Header的ContentControl,其除了具有ContentControl的Content属性外,还具有一个Header属性

    以下控件在使用HeaderedContentControl模型

    Expander,GoupBox,TabItem

    ItemsControl类

        从ItemsControl继承的控件包含一个对象集合,可以使用ItemsSource属性或Items属性来填充一个ItemsControl.

    以下控件在使用ItemsControl模型

    ComboBox , ContextMenu, ListBox, ListView, Menu,StatusBar,TabControl,TreeView

    HeaderedItemsControl类

        HeaderedItemsControl从ItemsControl类继承. HeaderedItemsControl定义Header属性,该属性遵从相同的规则,因为HeaderedContentControl. WPF的Header属性附带三个从HeaderedItemControl继承的控件:

    MenuItem,ToolBar,TreeViewItem

    WPF体系结构

  • 相关阅读:
    LeetCode(287)Find the Duplicate Number
    LeetCode(290) Word Pattern
    LeetCode(205)Isomorphic Strings
    LeetCode(201) Bitwise AND of Numbers Range
    LeetCode(200) Number of Islands
    LeetCode(220) Contains Duplicate III
    LeetCode(219) Contains Duplicate II
    命令行执行Qt程序
    LeetCode(228) Summary Ranges
    redis 的安装和使用记录
  • 原文地址:https://www.cnblogs.com/hdsong/p/5060800.html
Copyright © 2011-2022 走看看