WPF教程(二十五)WrapPanel[通俗易懂]

WPF教程(二十五)WrapPanel[通俗易懂]WrapPanel用于一个接一个的排列子控件,以水平或者垂直方向,当空间不足时就会自动切换到下一行。适合于需要水平或者垂直排列控件且能自动换行的情况。水平方向排列时,每一行所有子控件的高度都被统一成固定的值,这个值由最高的那个决定;每一列垂直方向排列时,所有子控件的宽度都被统一成固定的值,这个值由最宽的那个决定。我们先来看默认情况下的WrapPanel:

大家好,又见面了,我是你们的朋友全栈君。

WrapPanel用于一个接一个的排列子控件,以水平或者垂直方向,当空间不足时就会自动切换到下一行。适合于需要水平或者垂直排列控件且能自动换行的情况。

水平方向排列时,每一行所有子控件的高度都被统一成固定的值,这个值由最高的那个决定;每一列垂直方向排列时,所有子控件的宽度都被统一成固定的值,这个值由最宽的那个决定。

我们先来看默认情况下的WrapPanel:

<Window x:Class="WpfTutorialSamples.Panels.WrapPanel"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="WrapPanel" Height="300" Width="300">
        <WrapPanel>
                <Button>Test button 1</Button>
                <Button>Test button 2</Button>
                <Button>Test button 3</Button>
                <Button Height="40">Test button 4</Button>
                <Button>Test button 5</Button>
                <Button>Test button 6</Button>
        </WrapPanel>
</Window>

WrapPanel in Horizontal mode

注意我为第二行中的一个按钮指定了一个高度,这就使得第二行所有按钮都被设置成了这个高度。另外,这个面板还做了一件事件:第一行放不下的时候,自动了切换到第二行。

如果你改变窗口大小,譬如缩小窗口,面板立马自动调整以适应新的尺寸:

WrapPanel in Horizontal mode

这些规则在垂直方向排列时也是一样的。来看例子:

<Window x:Class="WpfTutorialSamples.Panels.WrapPanel"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="WrapPanel" Height="120" Width="300">
        <WrapPanel Orientation="Vertical">
                <Button>Test button 1</Button>
                <Button>Test button 2</Button>
                <Button>Test button 3</Button>
                <Button Width="140">Test button 4</Button>
                <Button>Test button 5</Button>
                <Button>Test button 6</Button>
        </WrapPanel>
</Window>

WrapPanel in Vertical mode

可以看到,垂直排列规则和水平方向的一模一样。按钮到达底部后就自动切换到第二列。我给第四个按钮设置了较宽的宽度,所以第二列都变成了这个宽度。

特别要注意,水平向的WrapPanel自动匹配同一行的高度,而不会匹配宽度;垂直向的WrapPanel自动匹配同一列的宽度,而不会匹配高度。看下面的例子,垂直向的WrapPanel在第四个按钮同时设置了宽和高:

<Button Width="140" Height="44">Test button 4</Button>

WrapPanel in Vertical mode with specific width/heights

可以看出第五个按钮只使用了第四个按钮的宽,并没有使用高。于是第6个按钮被挤到了第三列。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/163327.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 网络爬虫之动态内容爬取

    根据联合国网站可访问性审计报告,73%的主流网站都在其重要功能中依赖JavaScript。和单页面应用的简单表单事件不通,使用JavaScript时,不再是加载后立即下载所有页面内容。这样会造成许多网

    2021年12月29日
  • ubuntu20.04 美化_ubuntu19美化

    ubuntu20.04 美化_ubuntu19美化本文目录效果终端文件管理器步骤Ubuntu上的准备工作tweaktool安装火狐浏览器/谷歌浏览器安装插件安装插件下载主题、图标等配置终端的标题栏太大???方案1方案2效果终端文件管理器步骤Ubuntu上的准备工作tweaktool安装sudoaptinstallgnome-tweak-tool火狐浏览器/谷歌浏览器安装插件在浏览器的插件管理界面搜索gnomeshellintegration插件,然后安装。安装插件上面的东西都准备好之后,去gnome插件官网

  • python写一个完整的小程序_写一个python小程序[通俗易懂]

    python写一个完整的小程序_写一个python小程序[通俗易懂]在windows环境下进行操作window+R输入cmd创建一个文件夹mkdirpytxt创建一个py文件py.py用notepad或者记事本等工具进行编辑或首先声明python3.5以后没有中文乱码,已经支持中文,就像java的jdk1.6以后都支持中文一样。进入python交互环境下然后可以进行数据运算,下面命令是简单的加、减、乘、除下面看一下python2.0版本的中文运行P…

  • uwsgi使用_qemu virtual cpu

    uwsgi使用_qemu virtual cpu导论wsgi全称webservergatewayinterface,wsgi不是服务器,也不是python模块,只是一种协议,描述webserver如何和webapplication通信的规则。运行在wsgi上的web框架有bottle,flask,djangouwsgi和wsgi一样是通信协议,是uWSGI服务器的单独协议,用于定义传输信息的类型,是一个web服务器,实现了W…

  • @transactional的使用_@transactional注解默认的回滚方式

    @transactional的使用_@transactional注解默认的回滚方式@Transactional是声明式事务管理编程中使用的注解1.添加位置1)接口实现类或接口实现方法上,而不是接口类中。2)访问权限:public的方法才起作用。@Transactional注解应该只被应用到public方法上,这是由SpringAOP的本质决定的。系统设计:将标签放置在需要进行事务管理的方法上,而不是放在所有接口实现类上:只读的接口就不需要事务管…

  • Java JSON格式字符串转JSON数组与JSON

    Java JSON格式字符串转JSON数组与JSON&lt;!–json-lib–&gt;&lt;dependency&gt;&lt;groupId&gt;net.sf.json-lib&lt;/groupId&gt;&lt;artifactId&gt;json-lib&lt;/artifactId&gt;&lt;version&gt;2.4&lt;/version&gt;&amp

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号