WPF 控件专题 WrapPanel 控件详解「建议收藏」

WPF 控件专题 WrapPanel 控件详解「建议收藏」WPF控件专题WrapPanel控件详解

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

1、WrapPanel 介绍

  官方释义:WrapPanel(环绕面板):按从左到右的顺序位置定位子元素,在包含框的边缘处将内容切换到下一行。 后续排序按照从上至下或从右至左的顺序进行,具体取决于 Orientation 属性的值。

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

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

**************************************************************************************************************

2、WrapPanel 的几个常用的属性介绍

    Orientation:获取或设置一个值,该值指定子内容的排列方向,默认是按水平方向排列;

    Background:获取或设置用于填充 Brush 的边框之间的区域的 Panel;

    Width/Height:宽度和高度;

    HorizontalAlignment:获取或设置在父元素(如 Panel 或项控件)中组合此元素时所应用的水平对齐特征;

    VerticalAlignment:获取或设置在父元素(如面板或项控件)中组合此元素时所应用的垂直对齐特征;

    Margin    :获取或设置元素的外边距;

    Opacity:透明度;        Name:元素的标识名称;        IsEnabled:使能,是否可用

    ItemHeight/ItemWidth:获取或设置一个值,该值指定 WrapPanel 中所含全部项的高度/宽度;

**************************************************************************************************************

3、具体示例

   代码示例一

<WrapPanel Margin="10">
	<Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="Yellow"/>
	<Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="YellowGreen"/>
	<Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="LightYellow"/>
	<Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="Green"/>
	<Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="Yellow"/>
	<Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="YellowGreen"/>
	<Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="LightYellow"/>
	<Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="Green"/>
</WrapPanel>

<!--更改子元素大小,当宽度不足,则会显示到下一行,或者往后补全-->
<WrapPanel Margin="10">
	<Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="Yellow"/>
	<Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="YellowGreen"/>
	<Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="LightYellow"/>
	<Border Margin="2" Width="250" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="Green"/>
	<Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="Yellow"/>
	<Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="YellowGreen"/>
	<Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="LightYellow"/>
	<Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="Green"/>
</WrapPanel>

代码示例二:使用垂直显示,设置子元素的宽高和水平垂直方向为居中显示,

<!--设置为垂直显示-->
<WrapPanel Margin="10" Orientation="Vertical" HorizontalAlignment="Center"
    VerticalAlignment="Center" ItemHeight="100" ItemWidth="210">
	<Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="Yellow"/>
	<Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="YellowGreen"/>
</WrapPanel>


<!--垂直显示、子元素设定固定宽高、以及水平居中、垂直居中显示-->
<WrapPanel Margin="10" Orientation="Vertical" HorizontalAlignment="Center"
    VerticalAlignment="Center" ItemHeight="180" ItemWidth="210">
	<Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="Yellow"/>
	<Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="YellowGreen"/>
	<Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="LightYellow"/>
	<Border Margin="2" Width="250" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="Green"/>
	<Border Margin="2" Width="250" Height="250" BorderBrush="Cyan" BorderThickness="1" Background="Yellow"/>
	<Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="YellowGreen"/>
	<Border Margin="2" Width="200" Height="200" BorderBrush="Cyan" BorderThickness="1" Background="LightYellow"/>
</WrapPanel>

**************************************************************************************************************

4、效果图

示例代码一效果图,左图为固定大小效果图;有图为空间不足,切到下一行显示效果图

WPF 控件专题 WrapPanel 控件详解「建议收藏」      WPF 控件专题 WrapPanel 控件详解「建议收藏」

 代码示例二效果图,左侧为垂直显示效果,右侧为垂直,固定子元素宽高效果图

WPF 控件专题 WrapPanel 控件详解「建议收藏」    WPF 控件专题 WrapPanel 控件详解「建议收藏」

**************************************************************************************************************

5、总结和扩展

    WrapPanel 也是一种常用的布局控件,配合其他布局控件使用,会使得界面布局更合理更美观。

**************************************************************************************************************

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

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

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

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

(0)


相关推荐

  • SDRAM控制器设计(8)SDRAM控制器仿真验证

    SDRAM控制器设计(8)SDRAM控制器仿真验证到此,简单的可进行读写操作的SDRAM控制器模块就设计好了。接下来,结合仿真模型(镁光官网提供的SDRAM模型)sdr文件,和编写的testbench文件验证所设计的控制器是否正确。testbench如下`timescale1ns/1ns`defineCLK100_PERIOD10modulesdram_control_tb;`include”../src/Sdr…

  • mnist手写数字识别代码_数字识别

    mnist手写数字识别代码_数字识别MNIST手写数字识别模型建立与优化本篇的主要内容有:TensorFlow处理MNIST数据集的基本操作建立一个基础的识别模型介绍SoftmaxSoftmaxSoftmax回归以及交叉熵等MNIST是一个很有名的手写数字识别数据集(基本可以算是“HelloWorld”级别的了吧),我们要了解的情况是,对于每张图片,存储的方式是一个28*28的矩阵,但是我们在导入数据进…

  • python encode和decode傻傻分不清楚「建议收藏」

    python encode和decode傻傻分不清楚「建议收藏」一、字符串和字节串的区别1、字符串:我们最常挂在嘴边的,”普通字符串“,是给人看的,在python中是str类型,str使用的是unicode编码,可通过encode()方法编码为字节串2、字节串:有时也叫“二进制字符串”,是给机器看的,在python中是bytes类型,bytes有编码格式,如utf-8(默认),gbk,可以通过decode()方法解码为字符串具体操作如下1、程序从文件或其他外部存储读取字节串内容,要将基解码为字符串,然后再内部使用2、程序完成处理,要把字符串写入文件

  • JAVA——Tess4J简单的图像识别DEMO

    JAVA——Tess4J简单的图像识别DEMO基本概念TesseractOpenSourceOCREngine:包含一个OCR引擎-libtesseract和一个命令行程序-tesseract。Tesseract4添加了一个新的基于LSTM的OCR引擎,该引擎专注于行识别,但仍支持Tesseract3的传统TesseractOCR引擎,该引擎通过识别字符模式进行工作。通过使用传统OCR引擎模式(–oem0),可以与Tesseract3兼容。它还需要训练有素的数据文件来支持旧式引擎,例如tessdata存储库中的文件。…

  • 硬盘的读写原理详解

    硬盘的读写原理详解硬盘的种类主要是SCSI、IDE、以及现在流行的SATA等;任何一种硬盘的生产都要一定的标准;随着相应的标准的升级,硬盘生产技术也在升级;比如SCSI标准已经经历了SCSI-1、SCSI-2、SCSI-3;其中目前咱们经常在服务器网站看到的Ultral-160就是基于SCSI-3标准的;IDE遵循的是ATA标准,而目前流行的SATA,是ATA标准的升级版本;IDE是并口设备,而SA

  • 陶瓷电容分类_陶瓷电容电压级别分类

    陶瓷电容分类_陶瓷电容电压级别分类陶瓷电容分为贴装陶瓷电容和插装陶瓷电容两大类。贴装陶瓷电容是多层陶瓷电容,一般耐压不会超过50V,而层数可以达到4000层,插装的陶瓷电容中包括圆片陶瓷电容和独石电容。圆片陶瓷电容也称瓷片电容,是单层的,耐压从50V~6000V都较为普遍。同样容值下,瓷片电容受温度影响更小,更适合应用在微弱信号放大电路的滤波中。独石电容全称是片式多层陶瓷电容器,(网上有资料说其实就是陶瓷贴片电容的

发表回复

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

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