• 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体系结构

  • 相关阅读:
    【Docker】(6)---Dockerfile文件
    【Docker】(5)---springCloud注册中心打包Docker镜像
    【Docker】(4)搭建私有镜像仓库
    【Docker】(3)---linux部署Docker及Docker常用命令
    【Docker】(2)---仓库、镜像、容器
    【Docker】(1)---Docker入门篇
    【Maven】---Nexus私服配置Setting和Pom
    【Maven】---Linux搭建Nexus3.X私服
    【Maven】---坐标与依赖
    go语言path包和filepath包的学习与使用
  • 原文地址:https://www.cnblogs.com/hdsong/p/5060800.html
Copyright © 2020-2023  润新知