WPF中通过控件Margin属性设置控件位置

  • 一、Margin属性简介
  • 二、Margin在cs文件中定义
  • 三、Margin设置控件位置
  • 四、参考文档

一、Margin属性简介

在使用WPF进行页面设计时,添加控件后,可以设置控件的Margin属性来设置控件与容器控件的间距。Margin如果为边距和元素内容区域分配的矩形空间不够大,则具有边距集的元素通常不会限制指定的大小。 当计算布局时,元素内容区域将受到约束。 如果内容已被约束为零,则只会对边距进行约束。
间距分为left,top,right和bottom四个方向,同时也是Margin属性的四个参数。四个参数的单位是与设备无关的单位(1/96 英寸) 。 还可以通过将单元类型字符串 cm in 或 pt 任何度量值追加到来指定其他单位。
在前台xaml中Margin可以使用如下代码指定:

Margin=“20”//left,top,right和bottom都设置为20
Margin=“20,10”//left,right设置为20,top,bottom设置为10
Margin=“10,20,30,40”//left=10,top=20,right=30,bottom=40

二、Margin在cs文件中定义

Margin的值类型为 Thickness 结构而不是数字,以便能够以非对称方式设置边距。在后台cs文件可以使用如下代码指定:

myThickness = new Thickness(10,20,30,40);//四个参数用法与在xaml中一致
mycontrol.Margin=myThickness;

三、Margin设置控件位置

Margin属性本来是设置控件与其他控件的间距,但也可以用来设置在容器控件如Grid中的位置,如下方代码:

System.Windows.Shapes.Rectangle rectangle01 = new System.Windows.Shapes.Rectangle();
rectangle01.HorizontalAlignment = HorizontalAlignment.Left;
rectangle01.VerticalAlignment = VerticalAlignment.Top;
rectangle01.Margin = new Thickness(10, 20, 0, 0);
this.Grid.Children.Add(rectangle01);
this.Grid.RegisterName("rectangle01", rectangle01);

代码中动态添加了一个Shapes类中的矩形框Rectangle,然后设置HorizontalAlignment 和 VerticalAlignment属性,将Rectangle设置为左上角对齐,最后设置Margin中的left和top,添加到Grid容器内,left和top值是根据在Grid内的坐标指定的。
如果是添加到Canvas容器,可以使用Canvas.SetLeft Canvas.SetTop设置,而不必使用Margin。
可以通过Margin属性设置控件位置的控件除Rectangle外还有TextBlock、TextBox等。

四、参考文档

WPF 在image控件用鼠标拖拽出矩形
FrameworkElement.Margin 属性
Thickness Struct

WPF中通过控件Margin属性设置控件位置相关推荐

  1. Windows Presentation Foundation(WPF)中的数据绑定(使用XmlDataProvider作控件绑定)

    原文:Windows Presentation Foundation(WPF)中的数据绑定(使用XmlDataProvider作控件绑定) ------------------------------ ...

  2. php怎么设置段落之间的距离,css如何设置段落间距?margin 属性设置段落间距(代码实例)...

    段落间距是网页设计里一个提升文章阅读体验的重要因素.但网页排版不想Word那样简单,而作为网页设计师,为了读者的良好阅读体验,我们必须为文章的每个小标题和段落都预留一定的空间,用css有效率地设置段落 ...

  3. android控件字体,android 设置控件的颜色字体的方法

    1.用代码设置控件的颜色: int b =  getResources().getColor(R.drawable.blue);//得到配置文件里的颜色 mButton.setTextColor(b) ...

  4. ElementUI的el-card中,内部元素margin属性失效问题

    问题: 在使用 el-card 时内部的分页组件超出了 el-card 的范围,而且 margin 属性失效,无法控制,很不好看: 解决方法: 给分页组件外层加一个 div,定位属性 position ...

  5. 网页中表格的用法和属性设置

    网页中的表格有四种标签:<table>,<tbody>,<tr>,<th>,<td> <table>:表格的主体标签,有这个标签 ...

  6. WPF中创建水晶动画效果的treeview控件

    软件开发中常常会用到treeview之类的导航菜单,如何使我们的菜单更具有视觉冲击力和动感呢,wpf可以帮我们轻易实现,下面我将使用blend来创建一个treeview动画效果资源. 首先我们在ble ...

  7. recharts中Legend的margin属性设置无效

    设置legend图例组件中的margin无效: return(<BarChartwidth={400}height={300}data={data}margin={{top: 20, right ...

  8. 在WPF中最大化窗口并将WindowState设置为None的任务栏

    目录 介绍 背景 是Bug吗? 使用代码 解决方案 设置窗口的属性 介绍 假设您希望WPF应用程序没有标题栏,并且将最大化显示为"全屏",那么您首先想到的是什么?这是最容易做到的. ...

  9. android 控件 margin,Android MarginDesign控件TabLayout导航栏使用详解

    TabLayout的使用简单介绍 比如在平常的项目中实现这样的效果,一般都是都会使用viewPageIndicate等几个开源框架直接实现,或者使用自定义的HorizontalScroll再配合Vie ...

最新文章

  1. ConcurrentHashMap之实现细节(转)
  2. linux应用之----进程控制理论
  3. CJSON之完全基于C库函数的使用
  4. 搭建SSM全流程框架过程
  5. npoi excel导入html数据库,C#_.NetFramework_Web项目_NPOI_EXCEL数据导入
  6. esp8266智能开关灯制作教程
  7. 密歇根州立大学联合领英提出基于AutoML的Embedding框架AutoDim
  8. HDU 4699 Editor【模拟栈】
  9. IP/24是什么意思?
  10. NIO和BIO的比较
  11. 离开微信直接打开APP指定的页面
  12. 论文阅读--利用完全卷积和空间变换网络从部分二维观测中产生三维超声
  13. html封套成exe,一种使用方便的封套的制作方法
  14. [转载]动物伦理,为了人的尊严_习惯累积沉淀_新浪博客
  15. 金蝶K3物料后台启用/取消保质期/批次管理
  16. mac 桌面不能右键 文件也不见了 但在finder的桌面上有
  17. · AI 计算图像识别在影像监控和安全监控中的 16 大应用
  18. Matlab:Matlab软件之Simulink的简介、特点、使用方法、界面介绍之详细攻略
  19. Python Pandas条件筛选功能
  20. Blender建模模块:匕首类模型的建模思路

热门文章

  1. 面向海量服务的设计原则和策略总结
  2. 梦幻各种辅佐秘籍大搜查
  3. NOTIFYICONDATA structure
  4. 时序分析基本概念(一)——建立时间
  5. 计算机组装与配置心得体会,计算机组装实习心得
  6. Helmholtz方程在直角坐标系下的变量分离及高维Fourier展开 | 特殊函数(一) |偏微分方程(二十三)
  7. 关于分片上传 php,php分片上传简单示例
  8. PythonStock(22)股票系统:继续学习股票量化交易。分享个quantos资料。
  9. C++经典问题:狐狸找兔子
  10. 【小迪安全day08】信息收集-架构,搭建,防护应用WAF