当前位置: 首页 > news >正文

WPF布局-布局属性(四)

在WPF布局框架中,如果标签不设置布局属性,系统默认为填充模式。当然,我们可以通过一系列标签的属性来达到布局标签的作用。

最常见的属性是Width和Height,是指定标签的宽和高。

MinWidth,MinHeight是指标签的最小宽度和最小高度,即使父容器的宽和高小于这个数字,标签也保持这个值。

MaxWidth,MaxHeight是指标签的最大宽度和最大高度。

最小和最大Width,Height将将会在一个固的区间来调整标签的大小。

HorizontalAlignment是标签在当前容器中左中右的停靠。VerticalAlignment是标签在当前容器中上中下的停靠。这两种停靠都是建立在父容器内的,只有父容器内大于标签是才能看到效果。

Margin,是一个独特的属性,它的值有三种情况,单值,表示该标签距父容器四周的距,两个值,第一个值为标签距父容器左右的距离,第二个值是标签距父器上下的距离,四个值,分别距父容器左,上,右,下的距离。如果存在Width和Height属性,它们的优先级要高于Margin。但一般情况了,两种属性的设置不会同时出现,Width和Height更强调固态的值,Margin强调随性的值,但它距边缘是固定的。

Padding和Margin相似,不同的是Padding是指标签内容与标签边界的距离。

Panel.ZIndex是一个层次的属性,这个值表示标签本身在父容器上位于那一层,值越大,越位于上层。可以用Panel.SetZIndex(标签名, 3);来设置标签元素的层次。

RenderTransofrm是一个缩放的属性,就是对当前标签的直接缩放,例子如下:

<Button Content="123" ;50" Height="20" Click="Button_Click" >

<Button.RenderTransform>

<ScaleTransform ScaleX="0.5" ScaleY="0.5">

</ScaleTransform>

</Button.RenderTransform>

</Button>

C#代码:

button1.RenderTransform = new ScaleTransform(2, 2);

LayoutTransform是一个旋转的属性

<Button Name="button1" Content="123" ;50" Height="20" >

<Button.LayoutTransform>

<RotateTransform Angle="45"></RotateTransform>

</Button.LayoutTransform>

</Button>

C#代码:

button1.LayoutTransform = new RotateTransform(90);

转换的类型还有MatrixTransform,如

<Button Name="button1" Content="123" ;50" Height="20" >

<Button.LayoutTransform>

<MatrixTransform Matrix="3, 1, 1, 3, 0, 0"></MatrixTransform>

</Button.LayoutTransform>

</Button>

C#代码:

button1.LayoutTransform = new MatrixTransform(3, 1, 1, 3, 0, 0);

image

上面的转换是用矩阵的方式实现,下面从x和y轴上来建立转换:

<Button.LayoutTransform>

<SkewTransform AngleX="30" AngleY="30" ></SkewTransform>

</Button.LayoutTransform>

C#代码:

button1.LayoutTransform = new SkewTransform(10, 30, 20, 140);

上面都是布局标签的一些属性,通过这些属性,配合模板,可能使整个程序更加完美统一。

相关文章:

  • GAE 博客——B3log Solo 0.2.1 发布预告
  • win2003主/辅DNS服务器详细配置
  • Microsoft SMS Sender
  • VOD三种VOD视频点播技术的简介和比较
  • iOS 4.2版safari对HTML5特性支持更新
  • 用window.location和window.open做链接的区别
  • OpenGL入门实验
  • ADO.NET Entity Framework创建 School 示例数据库(实体框架快速入门)
  • 这么多年来,程序设计上让我值得骄傲的3件小事情
  • postfix的基本配置
  • C#通用类库--DOS常用命令
  • 《Win32多线程程序设计》学习笔记 第9章 使用C++
  • 对struts一点理解总结
  • IIS 7.5 Application Warm-Up Module
  • iLo_惠普服务器远程管理和维修系统
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • Android系统模拟器绘制实现概述
  • JavaScript-Array类型
  • js
  • JS数组方法汇总
  • JS题目及答案整理
  • Lucene解析 - 基本概念
  • node入门
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 第2章 网络文档
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 技术发展面试
  • 消息队列系列二(IOT中消息队列的应用)
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 应用生命周期终极 DevOps 工具包
  • 赢得Docker挑战最佳实践
  • 用简单代码看卷积组块发展
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • !!Dom4j 学习笔记
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (定时器/计数器)中断系统(详解与使用)
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (转)C#调用WebService 基础
  • (转)http协议
  • (转)nsfocus-绿盟科技笔试题目
  • (转载)利用webkit抓取动态网页和链接
  • (状压dp)uva 10817 Headmaster's Headache
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .NET开发不可不知、不可不用的辅助类(一)
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • .net使用excel的cells对象没有value方法——学习.net的Excel工作表问题
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)
  • .pub是什么文件_Rust 模块和文件 - 「译」
  • 。Net下Windows服务程序开发疑惑
  • :not(:first-child)和:not(:last-child)的用法