canvas教程

3.5 使用Canvas面板进行基于坐标的布局

字号+ 作者:H5之家 来源:H5之家 2016-08-29 10:03 我要评论( )

到目前为止唯一一个尚未介绍的布局容器是Canvas面板。Canvas面板允许使用精确的坐标放置元素,如果设计数据驱动的富窗体和标准对话框,这非一个并非好的选择,;

> 其他综合 > WPF编程宝典——使用C# 2012和.NET 4.5(第4版) 3.5 使用Canvas面板进行基于坐标的布局 2013-08-21 10:39:11         我要投稿   

本文所属图书 > WPF编程宝典——使用C# 2012和.NET 4.5(第4版)

本书全面讲解WPF的实际工作原理,是一本WPF权威著作。在紧贴实用示例这一思想的引导下,列出实用提示,引导以专业的方式使用WPF。本书开篇介绍WPF基本概念以便为您奠定坚实的基础,并将现有C#技能作为引用框架,...  立即去当当网订购

到目前为止唯一一个尚未介绍的布局容器是Canvas面板。Canvas面板允许使用精确的坐标放置元素,如果设计数据驱动的富窗体和标准对话框,这非一个并非好的选择,;但如果需要构建其他一些不同的内容(例如,为一个图形工具创建绘图表面),Canvas面板可能是一个有用的工具。Canvas面板还是最轻量级的布局容器。这是因为Canvas面板没有包含任何复杂的布局逻辑,用以改变其子元素的首选尺寸。Canvas面板只是在指定的位置放置其子元素,并且其子元素具有所希望的精确尺寸。

为在Canvas面板中定位一个元素,需要设置Canvas.Left和Canvas.Top附加属性。Canvas.Left属性设置元素左边和Canvas面板左边之间的单位数。,Canvas.Top属性设置子元素顶边和Canvas面板顶边之间的单位数。同样,这些数值也是以设备无关单位设置的,当将系统DPI设置为96 dpi时,设备无关单位恰好等于通常的像素。

提示注意:

另外,可使用Canvas.Right属性而不是使用Canvas.Left属性,来确定元素和Canvas面板右边缘间的距离;可使用Canvas.Bottom属性而不是使用Canvas.Top属性,来确定元素和Canvas面板底部边缘的距离。不能同时使用Canvas.Right属性和Canvas.Left属性,也不能同时使用Canvas.Top属性和Canvas.Bottom属性。

可使用Width属性和Height属性明确设置子元素的尺寸。与使用其他面板相比,使用Canvas面板时这种设置更普遍,因为Canvas面板没有自己的布局逻辑(并且,当需要精确控制一个组合元素如何排列时,经常会使用Canvas面板)。如果没有设置Width属性和Height属性,元素会获取它所期望的尺寸—— 换句话说,它将变得足够大以适应其内容。

下面是一个包含4个按钮的简单Canvas面板示例:

<Canvas>

<Button Canvas.Left="10" Canvas.Top="10">(10,10)</Button>

<Button Canvas.Left="120" Canvas.Top="30">(120,30)</Button>

<Button Canvas.Left="60" Canvas.Top="80" Width="50" Height="50">

(60,80)</Button>

<Button Canvas.Left="70" Canvas.Top="120" Width="100" Height="50">

(70,120)</Button>

</Canvas>

图3-19显示了结果。

文本框:  
图3-19  在Canvas面板中明确地定位按钮

如果改变窗口的大小,Canvas面板就会拉伸以填满可用空间,但Canvas面板上的控件不会改变其尺寸和位置。Canvas面板不包含任何锚定和停靠功能,这两个功能是在Windows窗体中使用坐标布局提供的。造成该问题的部分原因是为了保持Canvas面板的轻量级。,另一个原因是为了防止以不当目的使用Canvas面板(例如,确定一个标准用户界面的布局)。

与其他所有布局容器一样,可在一个用户界面中嵌套Canvas面板。这意味着可使用Canvas面板在窗口的一部分中绘制一些细节内容,而在窗口的其余部分使用更合乎标准的WPF面板。

提示:

如果与其他元素一起使用Canvas面板,可能希望将它的ClipToBounds属性设置为true。这样,如果Canvas面板中的元素被拉伸超出Canvas面板的边界,将在Canvas面板的边缘处剪裁这些子元素(这样可以阻止它们与窗口中的其他元素重叠)。其他所有布局容器总是剪裁它们的子元素以适应其尺寸,而不考虑ClipToBounds的设置。

点击复制链接 与好友分享!回本站首页 您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力   上一篇:3.4.6 UniformGrid面板 下一篇:3.5.1 Z顺序 相关文章

1.2.2 书中使用的敏捷术语

1.4 本书中所使用术语的一般信息

2.3 使用CMMI模型时从哪里开始才能

2.4 使用CMMI模型时开始过程改进的

2.11 使用CMMI模型时可以通过不同的

3.2.2 使用函数句柄

11.3.2 使用Windows身份验证

11.3.3 使用Forms身份验证

8.3.1 有效地使用Task对话框

16.4.2 使用Configuration Manager

图文推荐

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • HTML5 Canvas圆盘抽奖

    HTML5 Canvas圆盘抽奖

    2016-08-29 12:04

  • canvas里画曲线之arc方法 自学教程视频1qun.com

    canvas里画曲线之arc方法 自学教程视频1qun.com

    2016-08-28 18:07

  • C++ Builder 使用Canvas的方法来绘制图形对象

    C++ Builder 使用Canvas的方法来绘制图形对象

    2016-08-28 17:00

  • jQuery meets the HTML5 canvas

    jQuery meets the HTML5 canvas

    2016-08-28 16:00

网友点评
p