2021-09-18 WPF 学习 —— 布局

WPF 学习 —— 布局

布局是 WPF 很重头的一部分内容,这一部分梳理和记录关于布局章节的知识点。

1. WPF 使用一种基于流(Flow-based)的概念来处理布局逻辑,将传统的基于“坐标”的思想尽力的舍弃掉,而是用相对和智能的方式,它使得开发人员可以创建与显示分辨率和窗口大小无关的、在不同显示设备上可以进行缩放调整的用户界面——这听起来很梦幻哈

2. WPF 窗口智能包含一个元素,WPF 推荐的方式是窗体上放一个容器,容器里放若干元素或容器。这一点通过创建默认的 WPF 程序可以看出,XAML 代码在 Window 标签内默认生成一个 Grid 元素,想在添加一个同级的元素,Window 标签处将会出现波折号报错“属性Content只能设置一次”

3. WPF 所有的容器类都是派生自 System.Windows.Controls.Panel,一些核心容器包括:

StackPanel(在一个水平或垂直堆栈中放置元素)

WrapPanel(在一系列可换行中放置元素,纵横均可)

DockPanel(根据容器整个边界调整元素)

Grid(根据一个不可见表格在行列中调整元素)

UniformGrid(相比 Gird,它要求所有单元格具有相同尺寸)

Canvas(使用固定坐标定位元素,接近传统 Windows,但不提供锚点和停靠,因此不适合但可用于可调整大小的窗体)

  1. 装饰元素是一种特殊的元素,通常用于在一个对象周围添加某种装饰效果,所有的装饰元素继承于 System.Windows.Controls.Decorator

5. UserLayoutRounding=true 属性将确保 WPF 将所有布局容器的内容对齐到最近的像素边界,从而保证不会出现因反锯齿而导致的显示内容模糊。例如,一个共宽 200 像素的 Grid 被分为两列,每列 100 像素宽,但显示设备宽度为 175 像素,这将导致每列实际宽度 87.5 像素,如果不应用该属性,将看到一个模糊的边界为了适应 0.5 的像素对齐而出现。

6. 尽管 Grid 布局控件十分灵活,Grid 中的元素也可以跨行跨列的显示,但显然这种灵活性伴随着不确定性和逻辑的复杂,一种推荐的经验是:对于一次性布局,如一组功能按钮,使用 StackPanel 更合适,为窗口多个布局使用一种一致性的结构,Grid 当然更方便。

7、Binding

1、Binding是数据桥梁,两端是Binding的源和目标,数据从哪里来,哪里就是源,数据到哪里去,哪里就是目标。

一般情况下Binding的源是业务逻辑层,Binding的目标是UI的控件对象

2、Binding的源:是一个对象,并且通过属性公开自己的数据。若需要具备自动通知属性值改变的功能,则必须实现INotifypropertyChanged接口,并在属性的set语句中激发PropertyChanged事件

   绑定数据源:

BindingOperations.SetBinding(参数1,参数2,参数3)

参数1:指定绑定的目标

参数2:指明把数据送到目标的哪个属性

参数3:指定绑定实例,将数据源与目标关联起来

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值