• WPF面试准备


    1.wpf中有两类模板,控件模板controltemplate和datatemplate都派生自Frameworktemplate。

    总共有三大模板 ControlTemplate,ItemsPanelTemplate,DataTemplate。

    a. ControlTemplate 主要用途是更改控件的外观。它有两个重要属性:VisualTree(视觉树)内容属性和Triggers触发器,对于触发器可以不用过多考虑,触发器可有可无。VisualTree就是呈现我们所画的控件。Triggers可以对我们的视觉树上的元素进行一些变化。

    b. ItemsPanelTemplate 是个特殊的空间模板,主要用来标明多条目控件如何显示它所包含的多项数据。也可以说是指定用于项的额布局的面板。多用于多个内容控件的目标。多为Panel属性或者Panel结尾的属性。

    c. DataTemplate 主要用于数据的呈现。也被称为显示绑定数据对象的模板。

    2.数据绑定

      

    WPF 里分三种:Binding,PriorityBinding,MultiBinding,这三种Binding的基类都是BindingBase,而BindingBase又继承于MarkupExtension。

    常见的使用Binding方法是:

    1 针对于继承于FrameworkElement控件。 SetBinding(DependencyProperty dp,String path),SetBinding(DependencyProperty dp,BindingBase binding),其中FrameworkElement中SetBinding只对DependencyProperty有效。

    2 另一种是 BindingOperations.SetBinding(currentFolder,TextBlock.TextProperty,binding);

    BindingOperations.SetBinding的原型是

    public static BindingExpressionBase SetBinding(DependencyObject target,DependencyProperty dp,BindingBase binding)

    3 清除Binding:

    BindingOperations.ClearBinding(currentFolder,TextBlock.TextProperty);//删除currentFolder上的TextBlock.TextProperty绑定

    BindingOperations.ClearAllBindings(currentFolder);//删除currentFolder上的所有绑定。

    直接对Dependency Property赋值也可以解除binding,不过只对单向binding有效。

    4.逻辑树和视觉树 视觉树时对逻辑树的扩展

      逻辑树是视觉树的子集

      WPF通过逻辑树处理依赖属性继承和资源的问题,视觉树来处理事件路由、渲染、资源定位等

       逻辑树可以认为是XAML所见的,而视觉树包含了XAML元素内部的结构

    5.属性变更通知 IpropertyChanged和ObservableCollection<T>

        

    a. INotifyPropertyChanged向客户端发出某一属性值更改的通知。

    b.  ObservableCollection<T>类,它是实现 INotifyCollectionChanged 接口的数据集合的内置实现。表示一个动态数据集合,在添加项、移除项或刷新整个列表时,此集合将提供通知

    6.ResourceDictionary

      提供了包含元素和WPF应用程序的其他元素使用的Wpf资源的一个哈希表/字典的实现,实现了应用程序的资源的共享

    、、、、待解决的问题

    7.wpf和winform的区别

      路由事件 命令(Command)

    笑语欢歌水云间, 谈古论今郁作烟。 人存一世数十载, 生则壮志冲九天!
  • 相关阅读:
    4.9新随笔
    4.2上机作业
    3.30作业
    3.26上机练习
    作业十
    作业九
    作业八
    作业六
    作业五
    作业三
  • 原文地址:https://www.cnblogs.com/mercedes-Benz/p/5398248.html
Copyright © 2020-2023  润新知