<Window x:Class="Demo4.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:Demo4" Title="{x:Static local:MainWindow.TitleTest}" Height="500" Width="525"> <!--窗体级别资源--> <Window.Resources> <Style x:Key="{x:Type Label}" TargetType="{x:Type Label}"> <Setter Property="FontStyle" Value="Italic"/> <Setter Property="Foreground" Value="Red"/> <Setter Property="FontSize" Value="36"/> </Style> </Window.Resources> <Grid ShowGridLines="True" UseLayoutRounding="True"> <!--定义行数--> <Grid.RowDefinitions> <RowDefinition Height="3*"/> <RowDefinition Height="*"/> <RowDefinition Height="30"/> </Grid.RowDefinitions> <!--定义列数--> <Grid.ColumnDefinitions> <ColumnDefinition/> <ColumnDefinition/> <ColumnDefinition/> </Grid.ColumnDefinitions> <StackPanel> <Label Content="{x:Static local:MainWindow.ageTest}" /> <!--样式取值原则-就近原则--> <Label Content="{x:Static local:MainWindow.nameTest}" FontSize="16"/> <Border BorderBrush="#FFE35A76" BorderThickness="10" Height="100" Name="border1" Width="200" Background="#FFEFE5E5" CornerRadius="10" DataContext="{Binding}" > <Label Content="{x:Static local:MainWindow.ageTest}" /> </Border> <UniformGrid > <Button Content="Window1" Click="Button_Click"/> <Button Content="b"/> <Button Content="c"/> <Button Content="d"/> </UniformGrid> </StackPanel> <StatusBar Name="statusBar1" Grid.Row="2" Grid.ColumnSpan="3"> <StatusBarItem Content="Status Bar"/> </StatusBar> </Grid> </Window>
using System.Windows; namespace Demo4 { /// <summary> /// MainWindow.xaml 的交互逻辑 /// </summary> public partial class MainWindow : Window { public static string nameTest = "name:kunkun"; public static string ageTest = "age:27"; public static string TitleTest = "Static用法学习"; public MainWindow() { InitializeComponent(); } private void Button_Click(object sender, RoutedEventArgs e) { Window1 w = new Window1(); w.Topmost = true; w.ShowDialog(); } } }
<Window x:Class="Demo4.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Window1" Height="300" Width="300"> <Grid> <DockPanel LastChildFill="True"> <Button DockPanel.Dock="Top" Content="Top"/> <Button DockPanel.Dock="Bottom" Content="Bottom"/> <Button DockPanel.Dock="Left" Content="Left"/> <Button DockPanel.Dock="Right" Content="Right"/> <Button Content="Middle"/> </DockPanel> </Grid> </Window>
运行效果如下:
注意:Grid的列宽与行高可采用固定、自动、按比列三种方式定义 。
UniformGrid
UniformGrid 就是Grid的简化版,每个单元格的大小相同,不需要定义行列集合。
每个单元格始终具有相同的大小,每个单元格只能容纳一个控件,将自动按照定义在其内部的元素个数,自动创建行列,并通常保持相同的行列数。
UniformGrid 中没有Row 和Column 附加属性,也没有空白单元格。