WPF中的布局方式

WPF中的布局方式前言:WPF(WindowsPresentationFoundation)是微软推出的基于Windows的用户界面框架,属于.NETFramework3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面布局方式:1.Canvas2.Grid3.WarpPanel4.StackPanel5.ScrollViewer……

大家好,又见面了,我是你们的朋友全栈君。

前言:WPF(Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架,属于.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面


WPF布局规则:wpf窗口只能包含单个元素,为在wpf窗口中放置多个元素,需要添加容器然后向容器中放置元素


一般常用的布局方式:

1.Canvas:使用固定坐标绝对定位元素

在这里插入图片描述

<Canvas Width="100" Height="100" HorizontalAlignment="Left" Background="Pink" VerticalAlignment="Bottom">
    </Canvas>
    //width:为容器的宽度,height:为容器的高度
    //HorizontalAlignment:水平对齐方式,VerticalAlignment:垂直对齐方式
    //Background:背景色

2.Grid:根据不可见的表格在行和列中排列元素

在这里插入图片描述

<Grid Width="100" Height="200" Background="Pink">
        <Grid.ColumnDefinitions>//设置列
            <ColumnDefinition/>
            <ColumnDefinition/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>//设置行
            <RowDefinition/>
            <RowDefinition/>
            <RowDefinition/>
            <RowDefinition/>
        </Grid.RowDefinitions>
        //所以图中见到了4行3列
    </Grid>

注:虽然说在xaml代码中划分了行和列但是线条不会在运行结果中显示
在这里插入图片描述
3.WarpPanel:在一系列可换行的行中放置元素;在水平方向上,WarpPanel面板从左向右放置条目,然后在随后的行中放置元素;在垂直方向上,WarpPanel面板在自上而下的列中放置元素,并使用附加的列放置剩余的条目:

我们用button按钮进行演示:

在这里插入图片描述

<WrapPanel Background="Pink">
        <Button VerticalAlignment="Top" Width="100" Height="100"/>
        <Button VerticalAlignment="Top" Width="100" Height="100"/>
        <Button VerticalAlignment="Top" Width="100" Height="100"/>
        <Button VerticalAlignment="Top" Width="100" Height="100"/>
    </WrapPanel>

WrapPanel提供了一些假想的行和列,当WrapPanel自身的宽高发生改变时对其中的元素布局也会有影响,如下图:当宽度变窄时其会自动调节其中元素的布局方式
在这里插入图片描述
4.DockPanel:沿着一条外边缘来拉伸所包含的控件,也就类似于许多窗口顶部的工具栏:
在这里插入图片描述

<DockPanel  LastChildFill="False" Background="Pink" >
        <Button Content="上" DockPanel.Dock="Top" Background="Blue"/>
        <Button Content="左" DockPanel.Dock="Left" Background="Yellow"/>
        <Button Content="下" DockPanel.Dock="Bottom"  Background="Red"/>
        <Button Content="右" DockPanel.Dock="Right"  Background="Black"/>
    </DockPanel>
    //Dock用于设置其对齐方式,有"Top","Left","Bottom","Right"四个属性值

LastChildFill:获取或设置一个值,该值指示 System.Windows.Controls.DockPanel 中的最后一个子元素是否拉伸以填充剩余的可用空间,默认为true。
5.StackPanel:和DockPanel类似都有拉伸作用:

在这里插入图片描述
默认情况下是水平拉伸,如果我们想垂直拉伸,可以加一下属性 Orientation="Horizontal"
在这里插入图片描述
6.ScrollViewer:自定义滚动条样式容器,自带滚动条:
在这里插入图片描述
在这里插入图片描述
可以看到在右侧有一个白色的滚动条样式

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159904.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月15日 下午7:16
下一篇 2022年7月15日 下午7:16


相关推荐

  • mysql自定义异常_mysql自定义函数详解

    mysql自定义异常_mysql自定义函数详解[最近研究mysql数据库性能的相关问题,为了对比不同版本之间的差别。笔者找了一台测试服务器升级了该服务器的mysql数据库进行测试,在升级mysql过程中遇到了一些问题并将其1、在MySql中创建自定义函数报错信息如下:ERROR1418(HY000):ThisfunctionhasnoneofDETERMINISTIC,NOSQL,orREADSSQLDATAin…

    2025年10月4日
    5
  • python int占几个字节_int占几个字节(c语言)?

    python int占几个字节_int占几个字节(c语言)?int 在 16 位编译器中占两个字节 int 在 32 位编译器中占四个字节 int 是整数类型的类型名 长整型的类型名为 longint 可简写为 long int 和 long 都是关键字 int 在 16 位编译器中占两个字节 int 在 32 位编译器中占四个字节 1 16 位编译器 char 1 个字节 char 即指针变量 2 个字节 shortint 2 个字节 int 2 个字节 unsi

    2026年3月18日
    0
  • 初识Python和使用Python爬虫

    初识Python和使用Python爬虫一.python基础知识了解:1.特点:Python的语言特性:Python是一门具有强类型(即变量类型是强制要求的)、动态性、隐式类型(不需要做变量声明)、大小写敏感(var和VAR代表了不同

    2022年7月6日
    24
  • android studio 导入eclipse乱码解决「建议收藏」

    android studio 导入eclipse乱码解决「建议收藏」在开发过程中遇到androidstudio导入eclipse乱码,综合网上查找的答案,我是这样解决的:1、首先在module的bulid.gradle文件的android标签中加入以下内容:applyplugin:’com.android.xxxx’android{compileSdkVersion21buildToolsVersion”21.

    2022年5月25日
    38
  • 使用SWO代替UART,实现Printf打印功能

    使用SWO代替UART,实现Printf打印功能JTAG 接口中 有个 SWO 引脚 一直没有在意 也没有去研究过是干嘛用的 直到发现 ST LINKV2 1 上也有个 SWO 引脚 于是去研究学习它的作用 用起来相比 UART 方得便多 1 写在前面 SWO SerialWireOu 串行线输出 SWV SerialWireVi 串行线查看器 ITM Instrumentat 仪器跟踪宏单元

    2026年3月17日
    2
  • 【快递100】 物流公司对应编码分享(截止到2021-09-19 最新数据)

    【快递100】 物流公司对应编码分享(截止到2021-09-19 最新数据)数据来自快递 100 官方 下表格已有公司名称对应编码不会改变 大家参考使用公司名称 公司编码 公司类型 圆通速递 yuantong 国内运输商 韵达快递 yunda 国内运输商 中通快递 zhongtong 国内运输商 申通快递 shentong 国内运输商 邮政快递包裹 youzhengguon 国际邮政 百世快递 huitongkuaid 国内运输商 顺丰速运 shunfen

    2026年3月20日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号