UI布局——XAML六大布局区别和使用



一,Grid:网格

作用
Grid面板是用于创建简单乃至复杂窗口布局的通用工具,自定义行和列的数量,宽和高来调整控件布局。

特点:

(1)可以定义任意数量的行和列,布局要知道RowDefinitions(行)和ColumnDefinitions(列),

现在要定义四行(RowDefinitions),实现如下:
在这里插入图片描述
想要几行就打几行的 RowDefinition,在这时就可以看出可以定义任意数量的行和列的特点(列也是一模一样的玩法)。

(2)定义出来的行和列都是没有定义宽高的,可以通过使用绝对值、相对比例或自动调整的方式进行精确设定。

第一种,固定长度——宽度不够,会裁剪,不好用。单位pixel。

第二种,自动长度——自动匹配列中最长元素的宽度。

第三种,比例长度——表示占用剩余的全部宽度;两行都是,将平分剩余宽度;像上面的一个2*,一个*,表示前者2/3宽度。

<Grid> 
<Grid.RowDefinitions> 
<RowDefinition Height="50"/><!--固定长度 行1,高50--> 
<RowDefinition Height="Auto"/><!--自动长度 行2,高度:Auto根据子控件自动计算--> 
<RowDefinition Height="*"/><!--比例长度 行3,填充行1和行2占用后的其余的剩余高度--> 
</Grid.RowDefinitions> 

<Grid.ColumnDefinitions> 
<ColumnDefinition Width="50"
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,关于WPF动态切换UI布局的案例,我可以为您提供以下思路: 1. 创建多个UI布局,例如:主页、登录页面、注册页面等。 2. 使用Frame控件作为容器,在Frame中动态切换UI布局。 3. 在主窗口中添加相应的按钮或导航栏,用于切换不同的UI布局。 4. 在按钮或导航栏的Click事件中,使用Frame.Navigate()方法来切换UI布局。 5. 在每个UI布局中,可以添加相应的控件和功能实现页面的交互。 下面是一个简单的示例代码: ```xml <!--MainWindow.xaml--> <Window> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <!--导航栏--> <StackPanel Orientation="Horizontal"> <Button Content="主页" Click="HomePage_Click"/> <Button Content="登录" Click="Login_Click"/> <Button Content="注册" Click="Register_Click"/> </StackPanel> <!--UI布局容器--> <Frame Grid.Row="1" x:Name="MainFrame"/> </Grid> </Window> ``` ```csharp //MainWindow.xaml.cs public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); //默认显示主页 MainFrame.Navigate(new HomePage()); } private void HomePage_Click(object sender, RoutedEventArgs e) { MainFrame.Navigate(new HomePage()); } private void Login_Click(object sender, RoutedEventArgs e) { MainFrame.Navigate(new LoginPage()); } private void Register_Click(object sender, RoutedEventArgs e) { MainFrame.Navigate(new RegisterPage()); } } ``` 其中,HomePage、LoginPage、RegisterPage均为自定义的用户控件,分别对应不同的UI布局。 希望以上思路能够对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值