WPF笔记(2.2 DockPanel)——Layout

读完了这一节,发现DockPanel就是过去winform中的Dock属性。原来的Dock属性是子控件设置,而其 父亲级别不用设置。现在WPF改为在父亲级别抽象出一个DockPanel,然后设置其下子控件的Dock属性。

<DockPanel LastChildFill="True">
    <Button DockPanel.Dock="Left">Left</Button>
    <Button DockPanel.Dock="Right">Right</Button>
    <Button DockPanel.Dock="Top">Top</Button>
    <Button DockPanel.Dock="Bottom">Bottom</Button>
    <Button>Fill</Button>
</DockPanel>

DockPanel有一个LastChildFill属性,一般设置为true,给最后一个元素使用,所以最后一个元素不 用设置Dock属性,自动占有剩余所有空间。我试过,LastChildFill属性不设置,默认也是true;设置为 false,则xaml报错。

最后一句话,在Form级别一般用DockPanel对其上的子模块进行布局。比较粗,考虑的是全局观问题。 比如说ToolBar,StatusBar,Navigation等等。

时间: 2024-10-27 21:41:22

WPF笔记(2.2 DockPanel)——Layout的相关文章

WPF笔记(2.4 Grid)——Layout

第一章已经简单介绍过这个容器,这一节详细介绍. Grid一般是用表格(Grid.Row 和Grid.Column )的,比StackPanel更细致一些,但是,这么玩很麻烦, 先横着竖着定义一大堆,然后把元素指定其表格位置,即插入数据,和我们平常习惯的HTML表格不太一样 ,甚至更麻烦了. 原因如下:Html空单元格要放占位符,这样会放很多:Grid玩法则是用什么元素就指定单元格位置, 不用的单元格默认是空,不用指定.另外,Grid单元格中的多个控件可以按照Z轴堆叠,这个顺序是由控 件在xaml

WPF笔记(2.6 ViewBox)——Layout

在Canvas外面包一层ViewBox,可以使Canvas内的控件填充整个ViewBox,并随着ViewBox的大小变化而 同步变化,这是因为ViewBox默认属性Stretch="Uniform". Stretch有四个属性: Uniform, Fill(为了填充甚至会拉伸), None(无效果,相当于没有用ViewBox), UniformToFill(如果Canvas大于ViewBox大小则裁剪) 老实说,这节我没看太懂,让我再try一下.

WPF笔记(2.5 Canvas)——Layout

Canvas是最精确的布局容器--绝对定位,此书作者不建议使用,以为控件的大小一般会随着内部字 体图片的动态生成而自动变化,所以使用前三种布局是最好的选择,在这一点上,我也持同样意见. Canvas使用Top/Bottom属性控制距离顶部/底部的高度:使用Left/Right属性控制距离左/右的距离. 有趣的是,调整Form的大小,第二个TextBlock的位置会相应变化,但和底部以及右边的距离是不变的, 代码见下: <Canvas Background="Yellow">

WPF笔记(2.3 StackPanel)——Layout

StackPanel用于小规模的排版布局,比如说一个局部下几个textbox和Button啦. Orientation属性有Vertical和Horizontal两种选择,决定布局方向. 所有控件都有Margin属性,用来使控件之间不那么拥挤,Margin随Vertical和Horizontal的不同而所 加的空白方向不同,当然Margin="3,3"意味着同时在两个方向上有空白. HorizontalAlignment属性用来调整控件的拓展方向.默认是Stretch,即横向有多少地方

WPF笔记(2.9和2.10)——Layout

2.9讲的是,如果内部设定超过容器大小,怎么办? StackPanel会裁剪越界部分 DockPanel和Grid会智能判断,从而决定换行. 2.10 自定义布局容器 自定义容器要实现两个方法MeasureOverride和ArrangeOverride,并保证遍历其下的所有子控件,使 他们都执行Measure和Arrange方法. using System; using System.Windows.Controls; using System.Windows; namespace Custo

WPF笔记(2.8 常用的布局属性)——Layout

这一节老没意思,啰里啰唆的尽是些HTML的属性,挑几个好玩的List出来,备忘: Padding与Margin的区别: Margin指控件边界与外界的间隙:Padding指的是控件内部内容与控件边界的间隙.两者可以同时使用 . 不再支持 RenderTransform= "scale 3" 改为: <Button> <Button.LayoutTransform> <ScaleTransform ScaleX="3" ScaleY=&q

WPF笔记(2.7 文字布局)——Layout

这一节介绍的是文字布局的几个控件: 1.TextBlock 最基本的文字控件 可以配置5个Font属性. TextWraping属性,"Wrap"是换行,NoWrap是不换行(原书有误,在此更正). TextBlock控件内可以放置很多控件,不光是文字. <TextBlock TextWraping="Wrap"> <Button>Split</Button> <CheckBox>across</CheckBox

WPF笔记(1.8 资源与映射)——Hello,WPF!

终于,看明白了,已经是凌晨1:39分. 这本书这一节写得实在是不好,一个local搞得我糊里糊涂,于是,准备按照他的思路,按照我的理解 ,改写一遍,包括源代码. 首先,这句话WPF新版本已经不用了: <?Mapping XmlNamespace="local" ClrNamespace="DataBindingDemo" ?>,这里 DataBindingDemo是例子的命名空间. 然后Window标签中这个属性设置 xmlns:local="

WPF笔记(1.9 样式和控件模板)——Hello,WPF!

资源的另一个用途是样式设置: <Window > <Window.Resources> <Style x:Key="myStyle" TargetType="{x:Type TextBlock}"> <Setter Property="VerticalAlignment" Value="Center" /> <Setter Property="FontWeight