zoukankan      html  css  js  c++  java
  • WP8.1 UI 编程 三、布局

    1. Panel是所有布局面板的父类。常用的布局面板:

    Canvas,子元素可以根据区域内坐标定位。

    StackPanel,栈面板,布局结构就像一个栈,只有水平竖直两种方向。

    Grid,网格,子元素可以根据行列布局。

    如果不需要进行复杂的布局,应尽量用相对简单的布局面板以提升表现,如用Canvas替代Grid。

    布局是一个递归系统,先进行测量,再进行排列。测量是测量子元素所需大小,排列是最终子元素大小及位置。

    应尽量减少重新布局,以提升表现。

    UI元素有两个重要的类UIElement和FrameworkElement,继承结构如下:

    Windows.UI.Xaml.DependencyObject

      Windows.UI.Xaml.UIElement:具有Measure和Arrange方法

        Windows.UI.Xaml.FrameworkElement:具有两个虚方法MeasureOverride和ArrangeOverride

    测量和排列的递归:

    先后调用Measure和Arrange;

    Measure会先调用MeasureOverride(如果实现了此方法),如果元素有子对象,MeasureOverride再调用子对象的Measure;

    Arrange会先调用ArrangeOverride(如果实现了此方法),如果元素有子对象,ArrangeOverride再调用子对象的Arrange。

    对不同分辨率上进行布局,应避免硬编码像素数。

    也可以用Windows.UI.Xaml.Window.Current.Bounds类的Height和Width属性获取手机分辨率及比例,从而根据实际分辨率进行动态适配。

    2. 以上面为基础,可以实现自定义布局规则。

    先继承Panel来自定义布局面板。

    如果传递一些参数来实现特殊的布局(如圆形环绕布局需要半径值),当布局根据参数动态变化时,要使用InvalidateArrange方法重新排列。

    接着重写MeasureOverride和ArrangeOverride方法。

  • 相关阅读:
    MySQLFront导入SQL文件报#1113错误解决
    LNMP1.3一键安装Linux环境,配置Nginx运行ThinkPHP3.2
    币胜网虚拟货币交易平台安装说明
    windows服务器详细安全设置
    WINDOWS SERVER 2008远程桌面端口修改方法
    mac终端ssh连接服务器 空闲的时候 连接断开
    FTP软件发送"AUTH TLS"提示 无法连接到服务器
    LNMP状态管理命令
    lnmp1.4环境FTP服务器的安装和使用
    springCloud
  • 原文地址:https://www.cnblogs.com/wylz/p/4019144.html
Copyright © 2011-2022 走看看