zoukankan      html  css  js  c++  java
  • WPF 基础

    1. 关于布局的规则
      • 控件的布局应该由容器来决定,而不是通过自身使用margin之类的东西来控制位置
      • 避免为控件定义明确的尺寸,但应该限定一个可接受的最大及最小尺寸
      • 不要将界面元素设置成与屏幕坐标相关
      • 容器应将有效控件共享给其子控件                  
    2. WPF不使用物理像素设置尺寸,而使用设备无关单位,该设备无关单位被定义为1/96英寸,即一英寸96个像素,1英寸=2.54cm,对于96DPI的显示设备,长度单位是1格像素,对于120DPI,单位长度是1.25像素,但长度不变都是1/(96*2.54) cm,常说的分辨率是逻辑像素密度,如1024像素*768像素,分辨率最大为物理分辨率,即物理像素密度
    3. WPF窗口只能包含一个控件,原因是由于Window类继承自ContentControl类,WPF中布局由所用容器决定,WPF窗口应该遵循的原则:
      • 不应显示设定控件的尺寸,而应该使控件尺寸适应内容,可以设置最大最小尺寸来限制可接受的尺寸范围
      • 不应使用屏幕坐标指定控件位置,应当由容器决定
      • 布局容器与它的子控件共享可以使用的空间
      • 可以嵌套布局容
    4. 所有WPF布局控件都继承自System.Windows.Controls.Panel,
      • StackPanel:可以把内部的元素在纵向或者横向上紧密排列,形成栈式布局。
      • WrapPanel:可以根据布局的大小(窗口大小)自动调整控件的位置
      • DockPanel沿一条边缘线来拉伸所包含的控件,这个控件有个最后一个内容控件实现填充所有剩余部分的功能,使用LastChildFill=True属性
    5. 如果有一颗稠密的嵌套元素树,可以通过View|Other Windows|Document Outlline菜单项显示该窗口
    6. Grid面板在预定义的行和列中放置元素,而WrapPanel和StackPanel面板放置元素时会隐式的创建行和列,Grid面板支持三种设置尺寸的方式:
      • 绝对设置尺寸方式,使用设备无关单位设置确切的尺寸,这是最无用的策略
      • Auto,自动设置尺寸方式,最常用,<ColumnDefinition width="Auto">表示匹配列中最宽元素的长度
      • *号,按比例设置尺寸方式,单元格会按比例增加
      • XAML中Grid.ColumnSpan 与Grid.RowSpan: 设置Grid中的控件占用的行数或者列数,用代码Grid.SetColumnSpan和Grid.SetRowSpan可以实现相同功能
    7. 共享尺寸组:使一行或一列 与其他行或列的尺寸相匹配,使用SharedSizeGroup创建共享组
    8. WPF 编程中最常用的标记扩展是支持资源引用的标记扩展(StaticResource 和 DynamicResource)以及支持数据绑定的标记扩展 (Binding)。
      • StaticResource 通过替换已定义资源的值来为属性提供值,key是xaml中定义的资源的key

        <object property="{StaticResource key}" .../>
        
        
      •  DynamicResource 通过将值推迟为对资源的运行时引用来为属性提供值
  • 相关阅读:
    Ubuntu安装软件问题的解决
    寻找两个字符串中最长的公共部分字符串
    CentOS
    vim自定义配置
    git创建远程仓库以及在本地提交到远程仓库的方法
    黑金开发板在NiosII环境下烧写image到flash失败的解决办法
    f.lux 一款免费的护眼开源软件
    python 制作自动化脚本
    修改python 默认的存储路径
    第一篇博客
  • 原文地址:https://www.cnblogs.com/phenixyu/p/3967234.html
Copyright © 2011-2022 走看看