代码如下:

window下默认grid,gird有两行,然后分别加了一个button 和一个textblock

public MainWindow(){InitializeComponent();//为gird添加两行grid.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(80, GridUnitType.Pixel) });grid.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(80, GridUnitType.Pixel) });//加入一个button Button btn = new Button() {Height = 40,Margin = new Thickness(5, 0, 0, 0),Content ="this is a button",};grid.Children.Add(btn);Grid.SetRow(btn, 0);//加入一个TextblockTextBlock txtblock = new TextBlock() {Height = 40,Text = "this is a textblock",Margin = new Thickness(5, 0, 0, 0),Background=Brushes.Brown};grid.Children.Add(txtblock);Grid.SetRow(txtblock, 1);}

运行后是:

默认若不设置button和textblock的宽度的话,则是伸展开铺满整一行

但是textblock一般不用设置width,而button则是必须设置

给button加上宽度为60后,如下:

很明显,button默认居中了,对textblock设置宽度也是一样

也就是说在grid的布局中,容器是默认居中展开的,若设置宽度后,也是默认居中的

那么,若我现在想达到button靠左40像素,如何实现?

一般我们会设置margin,如给button设置margin为 new thickness(40,0,0,0),效果如下:

可以看到button在居中的前提下,又像右边移动了40像素,很明显这不是我想要的

若要实现靠左,那么最好是设置HorizontalAlignment属性为left

如下图:

若不加HorizontalAlignment,那么可以使用Margin=new Thickness(-100,0,0,0) 来实现

就是在居中的前提下,将靠左设置为负值,也就是向左强行移动100像素,那么也能实现相同的效果,但是不推荐这么做

总结:

Grid中的布局默认都是居中展开的,可以使用HorizontalAlignment属性和margin来快速的实现想要的效果

WPF Grid内控件布局方法相关推荐

  1. C# wpf 实现Grid内控件拖动

    系列文章目录 第一章 Grid内控件拖动(本章) 第二章 Canvas内控件拖动 第三章 任意控件拖动 第四章 窗口拖动 第五章 附加属性实现任意拖动 文章目录 系列文章目录 前言 一.如何实现? 1 ...

  2. wpf 模板内控件在后台CS文件里面获取属性值

    标题有点乱,但很难说的清楚 写了一年的WPF了 也用了近一年的MVVM CS文件能不写代码竟然少写,这是从业一年以来 前辈们教诲的,但很多问题MVVM模式很难说完全搞得定,比较编程这水看似深却不深,说 ...

  3. java把控件跑挂了_Java代码动态修改 ConstraintLayout 内控件布局的辅助类

    ##上图 ConstraintUtil.java import android.support.annotation.IdRes; import android.support.constraint. ...

  4. C# wpf 实现Canvas内控件拖动

    系列文章目录 第一章 Grid内控件拖动 第二章 Canvas内控件拖动(本章) 第三章 任意控件拖动 第四章 窗口拖动 第五章 附加属性实现任意拖动 文章目录 系列文章目录 前言 一.如何实现? 1 ...

  5. 【Android 初学】3、控件布局初步

    Start Android 什么是控件布局 所谓的控件布局方法,就是指控制控件在Activity当中的位置.大小.颜色以及其他控件样式属性的方法. 控件的布局,在android中,有两种方法: 1.使 ...

  6. Android笔记之Android基本控件布局与Activity的生命周期

    前言 喜欢安卓里千奇百怪的app,酷炫的UI或者好玩的游戏.想知道那些软件是如何做的,为什么我在微博里发一条消息,就能一直存在网上,让别人看到?为什么我点击一个按钮就出现了一个效果,某个功能?为什么滑 ...

  7. WPF 绑定StaticResource到控件的方法

    WPF 绑定StaticResource到控件的方法 原文:WPF 绑定StaticResource到控件的方法 资源文件内的属性能否直接通过绑定应用到控件?答案是肯定的. 比如,我们要直接把下面的& ...

  8. qt中QHBoxLayout或QVBoxLayout布局内控件的动态生成与显示

    ---恢复内容开始--- qt中QHBoxLayout或QVBoxLayout布局内控件的动态生成与显示 打个比方,我现在写个小例子,这个小例子是这样的,整个界面分为俩个部分,分为上半部分和下半部分, ...

  9. C#WPF实现TextBox控件水印效果的两种实现方法

    C#WPF实现TextBox控件水印效果的两种实现方法 在WPF实际项目中往往需要在TextBox中加入水印,来告诉使用者输入TextBox中的内容,如下图片所示: 下面介绍两种方式,来添加上图中的水 ...

最新文章

  1. android mac测试地址,android获取有线网的Mac地址
  2. C++编程练习(5)----“实现简单的循环队列的顺序存储结构“
  3. 【USACO Mar08】 奶牛跑步 A-star k短路
  4. mysql数据库高级查询笔记_MySQL数据库基础——高级查询
  5. Discuz X3.2源码解析 discuz_application类(转自百度)
  6. Spring 自动装配 ‘byType’
  7. java文件重命名失败问题
  8. linux用户权限简介,Linux用户及权限管理
  9. linux dup用法,Linux:dup和dup2文件描述符及函数解析,dupdup2
  10. leapftp怎么下载文件,用leapftp怎么下载文件
  11. keepalived 健康检查机制说明
  12. 软件测试之如何测试数据?
  13. 100个python算法超详细讲解:委派任务
  14. 网页计算机谈音乐,如何用windows电脑录制网页上或电脑中自己的音乐
  15. linux自动补全命令插件,vim自动补全插件snipMate
  16. Ubuntu下安装Nvidia和Intel双显卡驱动
  17. 日语数量词及时间表示
  18. 江苏计算机自考考哪个学校,江苏2020年有哪些自考院校
  19. kubesphere_越南 ZaloPay 使用 KubeSphere 构建核心商户平台支持亿级用户
  20. CVE和CVSS计算

热门文章

  1. 安卓简单发送短信案例-qq盗号案例
  2. 中国快递的“无冕之王”要回港上市了? 管理层身家超刘强东!
  3. U9系统报错:Enterprise[9999] 不存在!
  4. 好强的英语句法(看了这些想不过四六级都难~~~)
  5. 查看Linux内核、CPU、内存及各组件版本的命令和方法
  6. 解析!如何从手机网站直接跳转到微信添加好友界面
  7. 分支限界算法 之 A*算法(启发式搜索算法)---九宫重排游戏(也称八数码问题)
  8. 干货丨加密数据迁移二三事
  9. 为什么INC,DEC指令不影响CF标志位呢?
  10. 华为OD机试真题Java_2022-2023-题目0188-网上商城优惠活动(一)