详解Margin设置

yiyecaodu 2016-09-14 11:45:02
Grid(GWidth、GHeight )中有一个Button(BWidth、BHeight ),设置Margin(Left、Up、Right、Down),则Button与Grid间的距离是LeftValue、UpValue、RightValue、DownValue。

计算边界值,分以下几种情况:

1、如果Button横向尺寸与Margin横向尺寸之和小于Grid横向尺寸,即BWidth+Left+Right

LeftValue=(GWidth+Left-BWidth-Right)/2;Right=LeftValue+Left-Right

高度方向(UpValue、DownValue)计算同理:

UpValue=(GHeight +Up-BHeight -Down)/2;DownValue=UpValue+Up-Down。

2、如果Button横向尺寸与Margin横向尺寸之和大于Grid横向尺寸,即BWidth+Left+Right>GWidth 则:

尺寸的优先级为UpValue/LeftValue>BHeight/BWidth>DownValue/RightValue

2.1如果Left+BWidth>GWidth 则:保证Left值,且Button部分在Grid之外。即LeftValue=Left,RightValue=0。高度方向同理。

2.2如果Left+BWidthGWidth时,LeftValue=Left,Right=GWidth-BWidth-Left。

...全文
1262 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
muzizongheng 2016-09-27
  • 打赏
  • 举报
回复
肯定是利用canvas的绝对值进行坐标值计算.
yiyecaodu 2016-09-24
  • 打赏
  • 举报
回复
引用 1 楼 SlowlyHeart的回复:
计算边界值 ->用canvas面板 设置控件的canvas.top ,canvas.left 属性
想做一个chart控件,但是现在不知道怎么实现坐标随着窗口变化耳变化,用canvas刷新计算位置,还是怎么实现?
exception92 2016-09-18
  • 打赏
  • 举报
回复
计算边界值 ->用canvas面板 设置控件的canvas.top ,canvas.left 属性

8,735

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧