Panel元素和自定义布局行为Silverlight包括Panel元素的派生套件,可以实现许多复杂的布局。常见方案(如堆栈元素)可以使用StackPanel元素方便地实现,而较为复杂的布局可以使用G
Panel 元素和自定义布局行为
Silverlight 包括 Panel 元素的派生套件,可以实现许多复杂的布局。常见方案(如堆栈元素)可以使用 StackPanel 元素方便地实现,而较为复杂的布局可以使用 Grid 来实现。
下表概括了可用的布局元素。
Canvas
定义一个区域,在此区域内,您可以使用相对于 Canvas 区域的坐标显式定位子元素。
Grid
定义由行和列组成的灵活网格区域。
StackPanel
将子元素排列成一行(可沿水平或垂直方向)。
上述每个布局容器都要考虑可能影响子元素排列方式的不同属性。
Margin
在对象及其布局槽之间创建空间。
HorizontalAlignment 和VerticalAlignment
将对象定位到其布局槽内。
Canvas.ZIndex
在两个对象重叠时将一个对象定位到另一个对象的顶部。
除了应用面板布局逻辑外,您还可以使用变换和动画来更改对象的位置。
在需要不可能使用任一预定义的 Panel 元素来实现的应用程序布局的情况下,自定义布局行为可以通过以下方式来实现:从 Panel 继承并使用 MeasureOverride 和 ArrangeOverride 方法重写默认度量和排列行为。
窗口大小调整
尽管使用 Canvas 对对象进行绝对定位在某些情况下很有用,但是在大小可变的浏览器窗口中,这通常是一个很糟糕的策略。绝对定位不允许对象根据浏览器窗口的大小调整在页面上重新排列,对象保留在各自的指定像素位置。
StackPanel 和 Grid 允许内容重新排列。Grid 对象是 Visual Studio Silverlight 模板使用的根元素。尽管在使用方面 Grid 对象比其他 Panel 对象要复杂一些,但是它支持内容的重新排列,并且其灵活性足以使您创建各种对象布局。
要获得最佳的窗口大小调整行为(除了使用 Panel 对象定位子对象外),通常来说最好的办法是将 DOM 的宽度和高度属性保留为 100%,并且在 XAML 文件的根元素或布局根元素中不包含任何宽度或高度声明。
例如,在下面的 XAML 中,根元素或布局元素都没有定义宽度或高度。
本站技术原创栏目文章均为中睿原创或编译,转载请注明:文章来自中睿,本站保留追究责任的权利。