<Window x:Class="WpfApp1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp1"
mc:Ignorable="d"
Title="wdpf入门学习" Height="450" Width="800">
<Grid x:Name="___No_Name_asdasdas">
<!-- 布局选项 二行两列 -->
<Grid.RowDefinitions>
<!-- height属性高度 auto 自适应 根据子元素是否可以撑开 或者固定像素 eg:100
或 比列 2 * 标识是第二行高度的2倍
width 和 height 类似
-->
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions> <!-- 样式的设置
Grid.ColumnSpan="2" 占据 2 列的位置
<Border Background="red" Grid.ColumnSpan="2" Grid.RowSpan="2" />
给整个页面设置ref背景色
-->
<Border Background="red" Grid.ColumnSpan="2" Grid.RowSpan="2" />
<Border Grid.Column="1" Grid.Row="0" Background="yellow" />
<Border Grid.Column="0" Grid.Row="1" Background="pink" />
<Border Grid.Column="1" Grid.Row="1" Background="skyblue" /> <!-- StackPanel 布局控件 水平或者垂直放置元素
默认是垂放置元素的 vertical 是默认垂直排列
Orientation 设置方向 Horizontal 是水平排列
-->
<StackPanel Orientation="Horizontal">
<Button Width="100" Height="40" Background="yellow" />
<Button Width="100" Height="40" Background="yellow" />
<Button Width="100" Height="40" Background="yellow" />
<Button Width="100" Height="40" Background="yellow" />
<Button Width="100" Height="40" Background="yellow" />
<Button Width="100" Height="40" Background="yellow" />
<Button Width="100" Height="40" Background="yellow" />
<Button Width="100" Height="40" Background="yellow" />
<Button Width="100" Height="40" Background="yellow" />
<Button Width="100" Height="40" Background="yellow" />
</StackPanel>
<!-- WrapPanel 环绕控件 当水平或垂直空间不够会自动换行
Orientation 默认水平排列 Horization
Vertiavl 垂直排列
-->
<WrapPanel Grid.Row="1" Grid.Column="0" Orientation="Vertical">
<Button Width="100" Height="40" />
<Button Width="100" Height="40" />
<Button Width="100" Height="40" />
<Button Width="100" Height="40" />
<Button Width="100" Height="40" />
<Button Width="100" Height="40" />
<Button Width="100" Height="40" />
<Button Width="100" Height="40" />
<Button Width="100" Height="40" />
</WrapPanel>
<!--
停靠面板
最后一个元素默认可以填充{拉伸}剩余所有的空间
LastChildFill = false 设置不填充
DockPanel.Dock 设置元素的方向 -->
<DockPanel Grid.Row="1" Grid.Column="1" LastChildFill="true">
<Button DockPanel.Dock="Bottom" Width="100" Height="40" Background="hotpink" />
<Button DockPanel.Dock="top" Width="100" Height="40" Background="hotpink" />
<Button Width="100" Height="40" Background="hotpink" />
</DockPanel>
<!-- 平均布局 -->
<UniformGrid Grid.Row="0" Grid.Column="1">
<Button Width="100" Height="30" />
<Button Width="100" Height="30" />
<Button Width="100" Height="30" />
<Button Width="100" Height="30" />
<Button Width="100" Height="30" />
<Button Width="100" Height="30" />
</UniformGrid>
</Grid>
</Window>

实现布局:

代码:

<Window x:Class="WpfApp1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Title="wdpf入门学习" Height="450" Width="800">
<Grid>
<!-- 使用两行布局 -->
<Grid.RowDefinitions>
<RowDefinition Height="100" />
<RowDefinition />
</Grid.RowDefinitions> <!-- 默认渲染第一行 -->
<Border Background="#686cc8" /> <!-- 第二行使用 2 列布局 -->
<Grid Grid.Row="1">
<Grid.ColumnDefinitions >
<ColumnDefinition Width="200" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Border Background="BLUE" />
<Grid Grid.Column="1">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions> <Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions> <Border Margin="5" Background="#7378db" />
<Border Margin="5" Grid.Column="1" Background="#4398cd" />
<Border Margin="5" Grid.Column="2" Background="#e480d5" />
<Border Margin="5" Grid.Column="3" Background="#4db5b1" />
<Border Margin="5" Grid.Column="4" Background="#e17b7b" /> <Border Margin="5" Grid.Row="1" Grid.ColumnSpan="3" Background="red" />
<Border Margin="5" Grid.Row="1" Grid.Column="3" Grid.ColumnSpan="2" Background="yellow" />
<Border Margin="5" Grid.Row="2" Grid.ColumnSpan="3" Background="blue" />
<Border Margin="5" Grid.Row="2" Grid.Column="3" Grid.ColumnSpan="2" Background="green" />
</Grid>
</Grid>
</Grid>
</Window>

wpf基本布局控件 -- 01的更多相关文章

  1. 【WPF】布局控件总结

    <Canvas>:画布,默认不会自动裁减超出内容,即溢出的内容会显示在Canvas外面,这是因为默认 ClipToBounds="False":可设置ClipToBou ...

  2. WPF 自适应布局控件

    public class KDLayoutGroup : Grid { public double LabelWidth { get; set; } public double GetLabelWid ...

  3. WPF布局控件与子控件的HorizontalAlignment/VerticalAlignment属性之间的关系

    WPF布局控件与子控件的HorizontalAlignment/VerticalAlignment属性之间的关系: 1.Canvas/WrapPanel控件: 其子控件的HorizontalAlign ...

  4. WPF自学入门(二)WPF-XAML布局控件

    上一篇介绍了xaml基本知识,我们已经知道了WPF简单的语法.那么接下来,我们要认识一下WPF的布局容器.布局容器可以使控件按照分类显示,我们一起来看看WPF里面可以使用哪些布局容器用来布局. 在WP ...

  5. WPF布局控件常用属性介绍

    WPF布局控件常用属性介绍 其它 | 作者:慧都控件网 | 2011-04-06 13:41:57| 阅读 0次 有用(0) 评论(0)   概述:WPF布局控件都是派生自System.Windows ...

  6. wpf布局控件总结

    首先要认识到wpf所有的布局控件都继承自Panel类,Panel类又继承自其他类.继承关系如下: 一.StackPanel布局面板 1.该面板在单行或者单列中以堆栈的形式放置其子元素. 默认情况下,S ...

  7. WPF 界面布局、常用控件入门教程实例 WPF入门学习控件快速教程例子 WPF上位机、工控串口通信经典入门

    WPF(Windows Presentation Foundation)是一种用于创建 Windows 桌面应用程序的框架,它提供了丰富的控件库和灵活的界面布局,可以创建现代化的用户界面.下面是 WP ...

  8. WPF中Ribbon控件的使用

    这篇博客将分享如何在WPF程序中使用Ribbon控件.Ribbon可以很大的提高软件的便捷性. 上面截图使Outlook 2010的界面,在Home标签页中,将所属的Menu都平铺的布局,非常容易的可 ...

  9. 在WPF程序中将控件所呈现的内容保存成图像(转载)

    在WPF程序中将控件所呈现的内容保存成图像 转自:http://www.cnblogs.com/TianFang/archive/2012/10/07/2714140.html 有的时候,我们需要将控 ...

  10. 布局控件Grid

    XAML概述 Silverlight的控件绘制是由XAML语言进行支持的.什么是XAML语言? 简单的说,XAML(Extensible Application Markup Language )是一 ...

随机推荐

  1. 【Mybatis】13 动态SQL

    还是先准备演示环境 数据库: CREATE TABLE `t_user` ( `id` int NOT NULL AUTO_INCREMENT, `last_name` varchar(10) DEF ...

  2. 从分布式计算的角度看pytorch和TensorFlow哪个更优?

    背景: pytorch框架是一个从学术圈出来的框架,因此pytorch并不原生支持分布式计算,而且在大模型火爆的今年以外好像在深度学习领域使用分布式计算的场景确实不多,所以pytorch并不原生支持分 ...

  3. 局域网中如何为Ubuntu20.04和window10共享文件

    如题,自己有两台电脑,一个安装的window10,一个安装的是Ubuntu20.04,两个电脑之间经常需要传文件,这个时候总是用U盘来回导文件就变得十分的不方便,于是就想到了设置网络共享. 本文的做法 ...

  4. 7月30日CSP-S模拟赛赛后总结

    7月30日模拟赛赛后总结 \[7月30日 \ \ 模拟赛 \ \ 赛后总结 \\ 2024年7月30日 \\ by \ \ \ hcy \] 洛谷同步:点我 一.做题情况 第一题比赛 \(100pts ...

  5. CryptoHouse:由 ClickHouse 和 Goldsky 支持的免费区块链分析服务(ClickHouse 博客)

    我们很高兴地宣布 CryptoHouse,在 crypto.clickhouse.com 上可访问,这是一个由 ClickHouse 提供支持的免费区块链分析服务. https://crypto.cl ...

  6. SMU 2024 spring 天梯赛自主训练3

    SMU 2024 spring 天梯赛自主训练3 7-1 2018我们要赢 - SMU 2024 spring 天梯赛自主训练3 (pintia.cn) 2018 wo3 men2 yao4 ying ...

  7. Linux程序之可变参数&&选项那些事!

    一.linux应用程序如何接收参数? 1. argc.argv Linux应用程序执行时,我们往往通过命令行带入参数给程序,比如 ls /dev/ -l 其中参数 /dev/ .-l都是作为参数传递给 ...

  8. Linux查看硬件信息超强命令sar,以及可视化工具ksar

    一.概述 sar(System Activity Reporter,系统活动情况报告)是Linux下系统运行状态统计工具,可从多方面对系统的活动进行报告,包括:文件的读写情况.系统调用的使用情况.磁盘 ...

  9. AvaloniaChat—从源码构建指南

    AvaloniaChat介绍 一个使用大型语言模型进行翻译的简单应用. 我自己的主要使用场景 在看英文文献的过程中,比较喜欢对照着翻译看,因此希望一边是英文一边是中文,虽然某些软件已经自带了翻译功能, ...

  10. Vue3 插槽技巧

    最近想着使用Vue3+ElementPlus封装一个后台管理常用的Table组件,设计之初考虑到高自定义性,所以便延伸出以下的代码 使用技术栈: Vue3.x ElementPlus Jsx Jsx ...