翼度科技»论坛 编程开发 .net 查看内容

WPF学习-布局

5

主题

5

帖子

15

积分

新手上路

Rank: 1

积分
15
1.  Grid布局 ,(Table 布局)
两行两列布局, 
Border  0 行 0 列默认开始
  1. <Window x:
  2.         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3.         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4.         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  5.         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  6.         xmlns:local="clr-namespace:WpfApp"
  7.         mc:Ignorable="d"
  8.         Title="MainWindow" Height="450" Width="800">
  9.     <Grid>
  10.         <Grid.RowDefinitions>
  11.             <RowDefinition></RowDefinition>
  12.             <RowDefinition></RowDefinition>
  13.         </Grid.RowDefinitions>
  14.         <Grid.ColumnDefinitions>
  15.             <ColumnDefinition></ColumnDefinition>
  16.             <ColumnDefinition></ColumnDefinition>
  17.         </Grid.ColumnDefinitions>
  18.         <Border Background="Red"></Border>
  19.         <Border Grid.Row="1" Background="Yellow"></Border>
  20.         <Border Grid.Column="1"  Background="Blue"></Border>
  21.         <Border Grid.Row="1" Grid.Column="1" Background="Green"></Border>
  22.     </Grid>
  23. </Window>
复制代码
效果图:

 
2. StackPanel 布局
默认垂直布局 ,一旦超出区域限制后不限制
     改成水平排列
  1. <Window x:
  2.         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3.         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4.         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  5.         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  6.         xmlns:local="clr-namespace:WpfApp"
  7.         mc:Ignorable="d"
  8.         Title="MainWindow" Height="450" Width="800">
  9.     <Grid>
  10.         <Grid.RowDefinitions>
  11.             <RowDefinition></RowDefinition>
  12.             <RowDefinition></RowDefinition>
  13.         </Grid.RowDefinitions>
  14.         <Grid.ColumnDefinitions>
  15.             <ColumnDefinition></ColumnDefinition>
  16.             <ColumnDefinition></ColumnDefinition>
  17.         </Grid.ColumnDefinitions>
  18.         <Border Background="Red"></Border>
  19.         <Border Grid.Row="1" Background="Yellow"></Border>
  20.         <Border Grid.Column="1"  Background="Blue"></Border>
  21.         <Border Grid.Row="1" Grid.Column="1" Background="Green"></Border>
  22.     </Grid>
  23. </Window>                                            
复制代码
效果图:

3.  WrapPanel 布局, ( float布局)
默认水平排序
 
  1. <Window x:
  2.         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3.         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4.         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  5.         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  6.         xmlns:local="clr-namespace:WpfApp"
  7.         mc:Ignorable="d"
  8.         Title="MainWindow" Height="450" Width="800">
  9.     <Grid>
  10.         <Grid.RowDefinitions>
  11.             <RowDefinition></RowDefinition>
  12.             <RowDefinition></RowDefinition>
  13.         </Grid.RowDefinitions>
  14.         <Grid.ColumnDefinitions>
  15.             <ColumnDefinition></ColumnDefinition>
  16.             <ColumnDefinition></ColumnDefinition>
  17.         </Grid.ColumnDefinitions>
  18.         <Border Background="Red"></Border>
  19.         <Border Grid.Row="1" Background="Yellow"></Border>
  20.         <Border Grid.Column="1"  Background="Blue"></Border>
  21.         <Border Grid.Row="1" Grid.Column="1" Background="Green"></Border>
  22.     </Grid>
  23. </Window><Window x:
  24.         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  25.         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  26.         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  27.         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  28.         xmlns:local="clr-namespace:WpfApp"
  29.         mc:Ignorable="d"
  30.         Title="MainWindow" Height="450" Width="800">
  31.     <Grid>
  32.         <Grid.RowDefinitions>
  33.             <RowDefinition></RowDefinition>
  34.             <RowDefinition></RowDefinition>
  35.         </Grid.RowDefinitions>
  36.         <Grid.ColumnDefinitions>
  37.             <ColumnDefinition></ColumnDefinition>
  38.             <ColumnDefinition></ColumnDefinition>
  39.         </Grid.ColumnDefinitions>
  40.         <Border Background="Red"></Border>
  41.         <Border Grid.Row="1" Background="Yellow"></Border>
  42.         <Border Grid.Column="1"  Background="Blue"></Border>
  43.         <Border Grid.Row="1" Grid.Column="1" Background="Green"></Border>
  44.     </Grid>
  45. </Window>
复制代码
效果:

 
4. DockPanel  停靠 (flex 布局)
默认横向填充,
  1.     <Grid>
  2.         <DockPanel>
  3.             <Button Width="100" Height="40"/>
  4.             <Button Width="100" Height="40"/>
  5.             <Button Width="100" Height="40"/>
  6.             <Button Width="100" Height="40"/>
  7.             <Button Width="100" Height="40"/>
  8.         </DockPanel>
  9.     </Grid>
复制代码
效果图:
默认横向填充,  最后一个元素占据整个布局, 居中显示.

 
停靠布局
注意设置: LastChildFill="False"
  1.     <Grid>
  2.         <DockPanel LastChildFill="False">
  3.             <Button Width="100" Height="40" DockPanel.Dock="Left"/>
  4.             <Button Width="100" Height="40" DockPanel.Dock="Top"/>
  5.             <Button Width="100" Height="40" DockPanel.Dock="Right"/>
  6.             <Button Width="100" Height="40" DockPanel.Dock="Bottom"/>
  7.         </DockPanel>
  8.     </Grid>
复制代码
效果图:

 
5. Uniform 布局 (Table)
均分所有区域
设置三行三列布局
  1.     <Grid>
  2.         <DockPanel>
  3.             <Button Width="100" Height="40"/>
  4.             <Button Width="100" Height="40"/>
  5.             <Button Width="100" Height="40"/>
  6.             <Button Width="100" Height="40"/>
  7.             <Button Width="100" Height="40"/>
  8.         </DockPanel>
  9.     </Grid>                           
复制代码
效果图:

 
6.  布局Demo 案例
Border : 类似background 属性 
  1. <Window x:
  2.         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3.         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4.         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  5.         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  6.         xmlns:local="clr-namespace:WpfApp"
  7.         mc:Ignorable="d"
  8.         Title="MainWindow" Height="450" Width="800">
  9.     <Grid>
  10.         <Grid.RowDefinitions>
  11.             <RowDefinition></RowDefinition>
  12.             <RowDefinition></RowDefinition>
  13.         </Grid.RowDefinitions>
  14.         <Grid.ColumnDefinitions>
  15.             <ColumnDefinition></ColumnDefinition>
  16.             <ColumnDefinition></ColumnDefinition>
  17.         </Grid.ColumnDefinitions>
  18.         <Border Background="Red"></Border>
  19.         <Border Grid.Row="1" Background="Yellow"></Border>
  20.         <Border Grid.Column="1"  Background="Blue"></Border>
  21.         <Border Grid.Row="1" Grid.Column="1" Background="Green"></Border>
  22.     </Grid>
  23. </Window><Window x:
  24.         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  25.         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  26.         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  27.         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  28.         xmlns:local="clr-namespace:WpfApp"
  29.         mc:Ignorable="d"
  30.         Title="MainWindow" Height="450" Width="800">
  31.     <Grid>
  32.         <Grid.RowDefinitions>
  33.             <RowDefinition></RowDefinition>
  34.             <RowDefinition></RowDefinition>
  35.         </Grid.RowDefinitions>
  36.         <Grid.ColumnDefinitions>
  37.             <ColumnDefinition></ColumnDefinition>
  38.             <ColumnDefinition></ColumnDefinition>
  39.         </Grid.ColumnDefinitions>
  40.         <Border Background="Red"></Border>
  41.         <Border Grid.Row="1" Background="Yellow"></Border>
  42.         <Border Grid.Column="1"  Background="Blue"></Border>
  43.         <Border Grid.Row="1" Grid.Column="1" Background="Green"></Border>
  44.     </Grid>
  45. </Window><Window x:
  46.         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  47.         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  48.         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  49.         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  50.         xmlns:local="clr-namespace:WpfApp"
  51.         mc:Ignorable="d"
  52.         Title="MainWindow" Height="450" Width="800">
  53.     <Grid>
  54.         <Grid.RowDefinitions>
  55.             <RowDefinition></RowDefinition>
  56.             <RowDefinition></RowDefinition>
  57.         </Grid.RowDefinitions>
  58.         <Grid.ColumnDefinitions>
  59.             <ColumnDefinition></ColumnDefinition>
  60.             <ColumnDefinition></ColumnDefinition>
  61.         </Grid.ColumnDefinitions>
  62.         <Border Background="Red"></Border>
  63.         <Border Grid.Row="1" Background="Yellow"></Border>
  64.         <Border Grid.Column="1"  Background="Blue"></Border>
  65.         <Border Grid.Row="1" Grid.Column="1" Background="Green"></Border>
  66.     </Grid>
  67. </Window><Window x:
  68.         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  69.         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  70.         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  71.         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  72.         xmlns:local="clr-namespace:WpfApp"
  73.         mc:Ignorable="d"
  74.         Title="MainWindow" Height="450" Width="800">
  75.     <Grid>
  76.         <Grid.RowDefinitions>
  77.             <RowDefinition></RowDefinition>
  78.             <RowDefinition></RowDefinition>
  79.         </Grid.RowDefinitions>
  80.         <Grid.ColumnDefinitions>
  81.             <ColumnDefinition></ColumnDefinition>
  82.             <ColumnDefinition></ColumnDefinition>
  83.         </Grid.ColumnDefinitions>
  84.         <Border Background="Red"></Border>
  85.         <Border Grid.Row="1" Background="Yellow"></Border>
  86.         <Border Grid.Column="1"  Background="Blue"></Border>
  87.         <Border Grid.Row="1" Grid.Column="1" Background="Green"></Border>
  88.     </Grid>
  89. </Window>    <Grid>
  90.         <DockPanel>
  91.             <Button Width="100" Height="40"/>
  92.             <Button Width="100" Height="40"/>
  93.             <Button Width="100" Height="40"/>
  94.             <Button Width="100" Height="40"/>
  95.             <Button Width="100" Height="40"/>
  96.         </DockPanel>
  97.     </Grid>                        
复制代码


来源:https://www.cnblogs.com/voidobject/archive/2023/03/21/17241758.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具