布局案例
1、标题栏、内容区、状态栏,用什么控件?
Stackpanel只能挤压,不能撑开区域
1、Grid可以替代
2、Dockpanel

默认最后一个沾满剩余空间
一般是先把确定的区域先写完
剩下的部分再处理
没必要按照顺序布局
<DockPanel> <!-- 标题--> <Border Height="30" Background="Gray" DockPanel.Dock="Top"/> <!-- 状态--> <Border Height="30" Background="Gray" DockPanel.Dock="Bottom"/> <!-- 内容--> <Border Height="auto" Background="LightGray" /> </DockPanel>
使用DockPanel,先划分:1、能从头到尾的,2、尺寸能定死的部分

鼠标拖放改变尺寸的时候:向下,向右的时候可以实现自适应
中间部分是两行
<Grid.RowDefinitions> <RowDefinition Height="30"/> <RowDefinition/> </Grid.RowDefinitions>
不设置高度,就是占满剩余空间
动态内容
建议使用UniformGrid,本身就是均分的
只需要设置两列,里面内容动态加载,两列一行,自动折行
没办法用Grid,否则必须指定哪个子项要指定加载到哪个单元格下
WarpPanel必须精确计算剩余的宽度必须正好够,否则就会折行,自动拖动也不满足条件
Tab页签
<TabControl Background="AliceBlue" DockPanel.Dock="Bottom" Height="120"> <TabItem Header="浏览记录"> <DataGrid> <DataGrid.Columns> <DataGridTextColumn Header="序号" Binding="{Binding Index}"/> <DataGridTextColumn Header="网址" Binding="{Binding Url}"/> </DataGrid.Columns> </DataGrid> </TabItem> </TabControl>
浙公网安备 33010602011771号