WPF布局

简介: 转自:http://blog.csdn.net/lisenyang/article/details/18312067WPF中存在5种布局元素Grid:网格。可以自定义行和列并通过行列的数量,行高,列宽来调整控件的布局。

 转自:http://blog.csdn.net/lisenyang/article/details/18312067

WPF中存在5种布局元素

  • Grid:网格。可以自定义行和列并通过行列的数量,行高,列宽来调整控件的布局。近似于HTML中的Table
  • StackPanel:栈式面板。可将包含的元素在水平或垂直方向排成一条线,当移除一个元素后,后面的元素会自动向前填充空缺
  • Cannas:画布。内部元素可以使用以像素为单位的绝对坐标进行定位,类似于Windows Fom的布局方式
  • DockPanel:泊靠式面板。内部元素可以选择泊靠的方向,类似于Winform中设置控件的Dock属性
  • WrapPanel:自行折行面板。内部元素在排满一行后能够自动折行,类似于HTML中的流式布局

  1.Grid

    特点:

  • 可以定义任意数量的行和列,非常灵活   
  • 行的高度和列的宽度可以使用绝对值,相对比例或自行调整的方式进行精确设定,并可以设置最大和最小值
  • 内部元素可以设置自己所在的行和列,还可以设置自己纵向跨几行,横向跨几列。
  • 可以设置Children元素的对齐方向

     适用场合

  • UI布局的大框架设计
  • 大量UI元素需要成行或者成列对齐的情况
  • UI尺寸改变的时候,元素需要保留固有的宽度和高度比例  
  • UI后期可能有较大的变更或扩展

     例题:

  

 <Grid Height="319" VerticalAlignment="Bottom">
        <Grid.RowDefinitions>
            <RowDefinition Height="1*"/>
            <RowDefinition Height="1*"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <!--1*为比例-->
            <ColumnDefinition Width="1*"/>
            <ColumnDefinition Width="2*"/>
        </Grid.ColumnDefinitions>
        <Label Content="第一行第一列" Grid.Column="0" Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Center"></Label>
        <Label Content="第一行第二列" Grid.Column="1" Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Center"></Label>
        <Label Content="第二行第一列" Grid.Column="0" Grid.Row="1" VerticalAlignment="Center" HorizontalAlignment="Center"></Label>
        <Label Content="第二行第二列" Grid.Column="1" Grid.Row="1" VerticalAlignment="Center" HorizontalAlignment="Center"></Label>
    </Grid>

    2.StackPanel

    使用场合:

  • 同类元素需要紧凑排列(如制作菜单和列表)
  • 移除其中的元素后能够自动补缺的布局或动画    

    3.Canvas

       使用场合:

  • 一经设计,基本不用有改动的小型布局(如图标)
  • 艺术性较强的布局
  • 需要使用大量纵横坐标来进行绝对定位布局
  • 依赖纵横坐标的动画

   

 

相关文章
|
2月前
|
前端开发 C# 索引
浅谈WPF之UI布局
一个成功的软件,离不开人性化的UI设计,如何抓住用户第一视觉,让用户产生依赖感,合适优雅的布局必不可少。本文以一些简单的小例子,简述WPF中布局 面板 控件的使用,仅供学习分享使用,如有不足之处,还请指正。
38 1
|
8月前
WPF-布局样式练习-Day02-聊天气泡
WPF-布局样式练习-Day02-聊天气泡
129 1
|
8月前
|
前端开发 C# 容器
WPF技术之控件布局
WPF提供了多种布局控件和技术,可以帮助开发人员轻松创建灵活的用户界面。
101 0
WPF技术之控件布局
|
8月前
|
C#
WPF-布局样式练习-Day01
WPF-布局样式练习-Day01
71 0
|
C# C++
C# WPF 左侧菜单右侧内容布局效果实现
原文:C# WPF 左侧菜单右侧内容布局效果实现 我们要做的效果是这样的,左侧是可折叠的菜单栏,右侧是内容区域,点击左侧的菜单项右侧内容区域则相应地切换。 wpf实现的话,我的办法是用一个tabcontrol,修改tabcontrol的样式模板,首先将控件的TabStripPlacement设置为left使tabcontrol的item header部分靠左内容靠右,然后用一个Expander将TabPanel包住实现可折叠菜单效果,最后就是把用到的控件样式修改一下即可。
4563 0
|
算法 C#
WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则
原文:WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 版权声明:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
1031 0
|
C#
[WPF] VisualBrush 中的布局
原文:[WPF] VisualBrush 中的布局 今天插一篇随笔。说一说上周五遇到的一个布局问题,问题大概是这样的:需要在一个快区域上添加一张透明的背景图片,由于区域较大、并且宽高都不是固定大小,图片较小 所以图片需要居中显示。
920 0
|
前端开发 C#
WPF编游戏系列 之一 布局设计
原文:WPF编游戏系列 之一 布局设计        本系列主要使用WPF和C#编写一个简单的小游戏(暂命名XMarket),意在通过该实例进一步学习和体验WPF,也欢迎广大同仁拍砖交流。言归正传,在编写一个软件前首先要思考软件的结构与布局,图片放在哪,按钮放在哪,都要先设计一下。
624 0