前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >WPF面板布局介绍Grid、StackPanel、DockPanel、WrapPanel

WPF面板布局介绍Grid、StackPanel、DockPanel、WrapPanel

作者头像
全栈程序员站长
发布于 2022-09-15 02:02:47
发布于 2022-09-15 02:02:47
2.1K0
举报

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

WPF面板布局介绍Grid、StackPanel、DockPanel、WrapPanel

回顾

上一篇,我们介绍了基本控件及控件的重要属性和用法,我们本篇详细介绍WPF中的几种布局容器及每种布局容器的使用场景,当 然这些都是本人在实际项目中的使用经验,可能还存在错误之处,还请大家指出。

本文大纲

1、Grid 2、StackPanel 3、DockPanel 4、WrapPanel

Grid

1、Row和Column

我们下面来介绍Grid的行的用法,及我们在UI设计过程中需要注意的细节。 由于前面我们在第一章中已经介绍了基本的关于Grid的表格行和列的定义及相关属性,为了防止大家遗忘,我们这里再次介绍下:

为了加深大家对Grid布局的印象,我们这里加入控件来展示效果。 下面在每个单元格都加入子控件

上面指定了控件在Grid表格中的哪一行那一列,如果我们的某个控件跨行或者跨列如何做呢?

关于跨行和跨列一样,只不过将Grid.ColumnSpan换成Grid.RowSpan。 下面介绍,在Grid如何将控件设置为自适应宽度和高度,或者是固定宽度或固定高度时,应该注意的细节。

1、自适应区域:

2、顶部对齐或底部对齐

对于顶部对齐和底部对齐,相对来说都一样。 3、左右对齐时:

4、下面来举个例子,我们来如何分析,根据原型来使用Grid布局来达到要求和目标: 例如下图:

我们以博客园为例,可能例子不太合适,但是如果我们想做一个博客园的桌面版,保持风格一致的情况下,如果我们使用Grid布局如何来布局呢? A、有Logo图片,上面还有设置等菜单,所以,我们可以吧这块设置为二行,这样比较容易区分页面的布局和设置 B、下面有几个二级菜单,新闻、博问等 一行 C、左侧有网站分类。必须1列 D、右侧有内容区。上面有区分首页、精华、候选、新闻、关注等、1列 E、右侧有找找看、还有最新新闻等 1列。 F、最下面,肯定还有状态栏,如果我们开发桌面系统。1行 根据上面的分析,我们的Grid表格至少5行、3列 关于其他的设计,我们通过Grid表格的组合来进行控制。 下面我们就来实现下: 先设置大体布局如下:

关于上述布局的具体实现如下: <Window x:Class=”Samples.MainWindow” xmlns=”http://schemas.microsoft.com/winfx/2006/xaml/presentation” xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml” Title=”MainWindow” Height=”600″ Width=”800″> <Grid > <Grid.RowDefinitions> <RowDefinition Height=”20″/> <RowDefinition Height=”50″/> <RowDefinition Height=”30″/> <RowDefinition Height=”*”/> <RowDefinition Height=”30″/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width=”150″/> <ColumnDefinition Width=”*”/> <ColumnDefinition Width=”200″/> </Grid.ColumnDefinitions> <Grid Grid.Column=”1″ Grid.ColumnSpan=”2″> <StackPanel Orientation=”Horizontal” HorizontalAlignment=”Right”> <Button Content=”何戈洲” Margin=”5,0,0,0″/> <Button Content=”我的博客” Margin=”5,0,0,0″/> <Button Content=”短消息” Margin=”5,0,0,0″/> <Button Content=”设置” Margin=”5,0,0,0″/> <Button Content=”退出” Margin=”5,0,0,0″/> </StackPanel> </Grid> <Grid Grid.Column=”0″ Grid.Row=”1″> <Image Source=”/Samples;Component/Images/logo_small.gif” /> </Grid> <Grid Grid.Column=”0″ Grid.ColumnSpan=”3″ Grid.Row=”2″> <StackPanel Orientation=”Horizontal”> <Button Margin=”5,0,0,0″>园子</Button> <Button Margin=”5,0,0,0″>新闻</Button> <Button Margin=”5,0,0,0″>博问</Button> <Button Margin=”5,0,0,0″>闪存</Button> <Button Margin=”5,0,0,0″>网摘</Button> <Button Margin=”5,0,0,0″>招聘</Button> <Button Margin=”5,0,0,0″>专题</Button> <Button Margin=”5,0,0,0″>知识</Button> </StackPanel> </Grid> <Grid Grid.Column=”0″ Grid.ColumnSpan=”3″ Grid.Row=”3″> <Image Source=”/Samples;Component/Images/main.png” /> </Grid> <Grid Grid.Column=”0″ Grid.ColumnSpan=”3″ Grid.Row=”4″> <StackPanel Orientation=”Horizontal” HorizontalAlignment=”Center”> <Button Margin=”5,0,0,0″>关于我们</Button> <Button Margin=”5,0,0,0″>联系我们</Button> <Button Margin=”5,0,0,0″>广告服务</Button> <Button Margin=”5,0,0,0″>人才服务</Button> <Button Margin=”5,0,0,0″>版权</Button> </StackPanel> </Grid> </Grid> </Window> 从上面的代码可以看出来,非常的简单,Grid特别适合软件系统的整体布局,在实际的项目中通过Grid与其他的布局控件相结合一起完成页面的整体布局。

StackPanel

StackPanel 适合水平或者垂直方向的布局,在上面的例子中我们大量的使用该种布局方式。适合局部区域的布局。比如博客园中的如下区域就可以采用StackPanel进行布局。

对于这类的固定的区域,我们可以不适用Grid来进行布局,使用StackPanel也可以达到目标。 我们来使用StackPanel来进行布局 <StackPanel Orientation=”Vertical” VerticalAlignment=”Stretch”> <GroupBox Header=”网站分类” Height=”Auto”> <StackPanel Orientation=”Vertical”> <Button Content=”.NET技术(16)”/> <Button Content=”编程语言(13)”/> <Button Content=”软件设计(3)”/> <Button Content=”Web前端(16)”/> <Button Content=”软件工程(26)”/> </StackPanel> </GroupBox> <GroupBox Header=”链接” Height=”Auto”> <StackPanel Orientation=”Vertical”> <Button Content=”反馈和建议”/> <Button Content=”官方博客”/> <Button Content=”电子期刊” /> <Button Content=”人才服务”/> <Button Content=”博客模板”/> </StackPanel> </GroupBox> </StackPanel> 运行效果如下:

与预期的效果相同,对于其他的模块,我们也可以在局部,对于水平或者垂直方向要求进行布局的,我们都可以采用StackPanel来进行布局。 下面我们来看看横向布局的例子:

我们通过表格中的使用对StackPanel的停靠定位,进而通过Stackpanel对内部的子控件的停靠方向设置,我们通过如下代码实现上述效果: <StackPanel Orientation=”Horizontal” HorizontalAlignment=”Right”> <Button Content=”何戈洲” Margin=”5,0,0,0″/> <Button Content=”我的博客” Margin=”5,0,0,0″/> <Button Content=”短消息” Margin=”5,0,0,0″/> <Button Content=”设置” Margin=”5,0,0,0″/> <Button Content=”退出” Margin=”5,0,0,0″/> </StackPanel> StackPanel在父容器中是右对齐的。 然后再StackPanel容器中,如果也采用内容右对齐,会有什么效果呢? <StackPanel Orientation=”Horizontal” HorizontalAlignment=”Right”> <Button Content=”何戈洲” Margin=”5,0,0,0″ HorizontalAlignment=”Right”/> <Button Content=”我的博客” Margin=”5,0,0,0″ HorizontalAlignment=”Right”/> <Button Content=”短消息” Margin=”5,0,0,0″ HorizontalAlignment=”Right”/> <Button Content=”设置” Margin=”5,0,0,0″ HorizontalAlignment=”Right”/> <Button Content=”退出” Margin=”5,0,0,0″ HorizontalAlignment=”Right”/> </StackPanel> 设置子控件的停靠方式时,不会起到任何作用,默认情况下,Stack的水平布局时,从左至右。 <StackPanel Orientation=”Horizontal” HorizontalAlignment=”Right” FlowDirection=”RightToLeft”> <Button Content=”何戈洲” Margin=”5,0,0,0″ HorizontalAlignment=”Right”/> <Button Content=”我的博客” Margin=”5,0,0,0″ HorizontalAlignment=”Right”/> <Button Content=”短消息” Margin=”5,0,0,0″ HorizontalAlignment=”Right”/> <Button Content=”设置” Margin=”5,0,0,0″ HorizontalAlignment=”Right”/> <Button Content=”退出” Margin=”5,0,0,0″ HorizontalAlignment=”Right”/> </StackPanel> 修改了FlowDirection设置了StackPanel的方向后,所有的子控件,都是从右向左方向进行绘制和显示,效果如下:

所以对于StackPanel我们基本上是用上述的属性和对StackPanel的停靠方式进行设置后,即可满足布局的要求。

DockPanel

DockPanel停靠容器,专门负责自适应窗口的布局,之前我们介绍了DockPanel的布局设置,这里再回顾下: <DockPanel> <StackPanel DockPanel.Dock=”Top” Height=”0″> </StackPanel> <StackPanel DockPanel.Dock=”Left” Height=”0″> </StackPanel> <StackPanel DockPanel.Dock=”Bottom” Height=”0″> </StackPanel> <StackPanel DockPanel.Dock=”Right” Orientation=”Vertical” Width=”200″> <GroupBox Header=”最新新闻” Height=”160″> <StackPanel Orientation=”Vertical”> <Button Content=”宅急送近日宣布降价抢”/> <Button Content=”腾讯联手华为操盘四核手机”/> <Button Content=”Windows 8各版本区别与售价”/> <Button Content=”数方程将无线网络带宽提高一个数量级”/> <Button Content=”中移动:Lumia 920T将于11月上市”/> <Button Content=”Windows 8下一站:10月25日纽约”/> </StackPanel> </GroupBox> <GroupBox Header=”48小时阅读排行榜” Height=”160″> <StackPanel Orientation=”Vertical”> <Button Content=”子用户-角色-权限-菜单 浅谈:子账户设计方案”/> <Button Content=”网站已恢复正常,让大家久等了”/> <Button Content=”拿什么拯救你,我的51Job简历?——UBB漏洞”/> <Button Content=”这些年我们没用过的JS”/> <Button Content=”多少钱才可让人重拾理想”/> <Button Content=”准备购买的Dell服务器的硬件配置”/> </StackPanel> </GroupBox> </StackPanel> <StackPanel > <Button Content=” 我铺满”/> </StackPanel> </DockPanel> 上面的DockPanel在进行自适应布局时,默认最后的一个区域时默认填充,可以理解为fill。而必须制定其他的区域后,该设置才有效,所以,我们上面设置了top,left,bottom 占用的空间都是0,这样,系统会将最后的一个子区域填充。 上面设置后的效果如下。

当然,这个页面的整体,我们也可以采用DockPanel进行布局,布局的效果,完全可以达到上述效果,下面我们来使用DockPanel来对整体进行布局吧。 最终的代码如下: <DockPanel> <StackPanel DockPanel.Dock=”Top” Height=”100″> <Grid> <Grid.RowDefinitions> <RowDefinition Height=”20″/> <RowDefinition Height=”50″/> <RowDefinition Height=”30″/> </Grid.RowDefinitions> <Grid > <StackPanel Orientation=”Horizontal” HorizontalAlignment=”Right” FlowDirection=”RightToLeft”> <Button Content=”何戈洲” Margin=”5,0,0,0″ HorizontalAlignment=”Right”/> <Button Content=”我的博客” Margin=”5,0,0,0″ HorizontalAlignment=”Right”/> <Button Content=”短消息” Margin=”5,0,0,0″ HorizontalAlignment=”Right”/> <Button Content=”设置” Margin=”5,0,0,0″ HorizontalAlignment=”Right”/> <Button Content=”退出” Margin=”5,0,0,0″ HorizontalAlignment=”Right”/> </StackPanel> </Grid> <Grid Grid.Row=”1″> <Image Source=”/Samples;Component/Images/logo_small.gif” HorizontalAlignment=”Left”/> </Grid> <Grid Grid.Row=”2″> <StackPanel Orientation=”Horizontal”> <Button Margin=”5,0,0,0″>园子</Button> <Button Margin=”5,0,0,0″>新闻</Button> <Button Margin=”5,0,0,0″>博问</Button> <Button Margin=”5,0,0,0″>闪存</Button> <Button Margin=”5,0,0,0″>网摘</Button> <Button Margin=”5,0,0,0″>招聘</Button> <Button Margin=”5,0,0,0″>专题</Button> <Button Margin=”5,0,0,0″>知识</Button> </StackPanel> </Grid> </Grid> </StackPanel> <StackPanel DockPanel.Dock=”Bottom” Height=”30″ Orientation=”Horizontal” HorizontalAlignment=”Center”> <Button Margin=”5,0,0,0″>关于我们</Button> <Button Margin=”5,0,0,0″>联系我们</Button> <Button Margin=”5,0,0,0″>广告服务</Button> <Button Margin=”5,0,0,0″>人才服务</Button> <Button Margin=”5,0,0,0″>版权</Button> </StackPanel> <StackPanel DockPanel.Dock=”Left” Width=”150″> <StackPanel Orientation=”Vertical” VerticalAlignment=”Stretch”> <GroupBox Header=”网站分类” Height=”Auto”> <StackPanel Orientation=”Vertical”> <Button Content=”.NET技术(16)”/> <Button Content=”编程语言(13)”/> <Button Content=”软件设计(3)”/> <Button Content=”Web前端(16)”/> <Button Content=”软件工程(26)”/> </StackPanel> </GroupBox> <GroupBox Header=”链接” Height=”Auto”> <StackPanel Orientation=”Vertical”> <Button Content=”反馈和建议”/> <Button Content=”官方博客”/> <Button Content=”电子期刊” /> <Button Content=”人才服务”/> <Button Content=”博客模板”/> </StackPanel> </GroupBox> </StackPanel> </StackPanel> <StackPanel DockPanel.Dock=”Right” Orientation=”Vertical” Width=”200″> <GroupBox Header=”最新新闻” Height=”160″> <StackPanel Orientation=”Vertical”> <Button Content=”宅急送近日宣布降价抢”/> <Button Content=”腾讯联手华为操盘四核手机”/> <Button Content=”Windows 8各版本区别与售价”/> <Button Content=”数方程将无线网络带宽提高一个数量级”/> <Button Content=”中移动:Lumia 920T将于11月上市”/> <Button Content=”Windows 8下一站:10月25日纽约”/> </StackPanel> </GroupBox> <GroupBox Header=”48小时阅读排行榜” Height=”160″> <StackPanel Orientation=”Vertical”> <Button Content=”子用户-角色-权限-菜单 浅谈:子账户设计方案”/> <Button Content=”网站已恢复正常,让大家久等了”/> <Button Content=”拿什么拯救你,我的51Job简历?——UBB漏洞”/> <Button Content=”这些年我们没用过的JS”/> <Button Content=”多少钱才可让人重拾理想”/> <Button Content=”准备购买的Dell服务器的硬件配置”/> </StackPanel> </GroupBox> </StackPanel> <StackPanel > <Button Content=” 我铺满”/> </StackPanel> </DockPanel> 运行上述代码效果如下:

通过DockPanel完成对整体的布局,然后内部结合一些其他的布局控件,完成局部的细节的布局。

WrapPanel

WrapPanel容器我们也介绍过,该容器可以看做自动换行功能的StackPanel容器。下面我们就来分析下该容器的一般应用场景。

我们看到了windows8中的如下页面,如果我们仿制该页面的时候,其实我们可以采用wrappanel来实现自动的换行,下面我们来试试吧 最终代码如下: <Window x:Class=”Samples.Window8Window” xmlns=”http://schemas.microsoft.com/winfx/2006/xaml/presentation” xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml” Title=”Window8Window” Height=”600″ Width=”800″> <Grid> <Grid.RowDefinitions> <RowDefinition Height=”50″/> <RowDefinition Height=”*”/> </Grid.RowDefinitions> <Grid Grid.Row=”0″> <Label Content=”开始” FontFamily=”微软雅黑” FontSize=”30″/> </Grid > <Grid Grid.Row=”1″> <WrapPanel Orientation=”Horizontal” ItemHeight=”100″ ItemWidth=”190″> <Image Source=”/Samples;Component/Images/logo_small.gif” /> <Image Source=”/Samples;Component/Images/logo_small.gif” /> <Image Source=”/Samples;Component/Images/logo_small.gif” /> <Image Source=”/Samples;Component/Images/logo_small.gif” /> <Image Source=”/Samples;Component/Images/logo_small.gif” /> <Image Source=”/Samples;Component/Images/logo_small.gif” /> <Image Source=”/Samples;Component/Images/logo_small.gif” /> <Image Source=”/Samples;Component/Images/logo_small.gif” /> <Image Source=”/Samples;Component/Images/logo_small.gif” /> <Image Source=”/Samples;Component/Images/logo_small.gif” /> <Image Source=”/Samples;Component/Images/logo_small.gif” /> <Image Source=”/Samples;Component/Images/logo_small.gif” /> <Image Source=”/Samples;Component/Images/logo_small.gif” /> <Image Source=”/Samples;Component/Images/logo_small.gif” /> <Image Source=”/Samples;Component/Images/logo_small.gif” /> <Image Source=”/Samples;Component/Images/logo_small.gif” /> </WrapPanel> </Grid> </Grid> </Window> 运行后,效果如下:

当然,我们的界面效果,还打不到美感,但是的确是自动换行。我们将水平方向,修改为垂直方向后,运行:

运行查看效果。

通过上面的简单案例,我们基本上知道了wrapPanel的用法。

总结

通过上面的介绍和demo的演示,我们知道了如何在项目中什么情况下,使用什么样的布局容器,通过实际的案例,我们更容易理解和掌握布局的模式。错误之处,还请大家反馈,我及时改正,谢谢!

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
C# Grid StackPanel DockPanel WrapPanel
为了加深大家对Grid布局的印象,我们这里加入控件来展示效果。 下面在每个单元格都加入子控件
全栈程序员站长
2022/09/15
6910
C# Grid StackPanel DockPanel WrapPanel
[WPF]动手写一个简单的消息对话框
消息对话框是UI界面中不可或缺的组成部分,用于给用户一些提示,警告或者询问的窗口。在WPF中,消息对话框是系统原生(user32.dll)的MessageBox,无法通过Style或者Template来修改消息对话框的外观。因此,当需要一个与应用程序主题风格一致的消息对话框时,只能自己动手造轮子了。
czwy
2023/11/23
4370
[WPF]动手写一个简单的消息对话框
WPF中的StackPanel、WrapPanel、DockPanel
默认,由上到下显示各控件。控件在未定义的前提下,宽度为StackPanel的宽度,高度自动适应控件中内容的高度
全栈程序员站长
2022/09/15
2.1K0
WPF 制作留言板
留言板实例: <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"
zls365
2020/11/10
4.9K0
WPF 制作留言板
WPF快速入门系列(1)——WPF布局概览
  关于WPF早在一年前就已经看过《深入浅出WPF》这本书,当时看完之后由于没有做笔记,以至于我现在又重新捡起来并记录下学习的过程,本系列将是一个WPF快速入门系列,主要介绍WPF中主要的几个不同的特性,如依赖属性、命令、路由事件等。
zls365
2020/11/10
3.1K0
WPF快速入门系列(1)——WPF布局概览
WPF 实现带蒙版的 MessageBox 消息提示框
Nuget[1] Install-Package WPFDevelopers.Minimal
独立观察员
2022/12/06
1.2K0
WPF 实现带蒙版的 MessageBox 消息提示框
WPF-组合使用Panel
MaybeHC
2024/04/23
930
WPF-组合使用Panel
WPF中的布局方式
3.WarpPanel:在一系列可换行的行中放置元素;在水平方向上,WarpPanel面板从左向右放置条目,然后在随后的行中放置元素;在垂直方向上,WarpPanel面板在自上而下的列中放置元素,并使用附加的列放置剩余的条目:
全栈程序员站长
2022/09/14
1.7K0
WPF中的布局方式
学习WPF——WPF布局——初识布局容器
StackPanel堆叠布局 StackPanel是简单布局方式之一,可以很方便的进行纵向布局和横向布局 StackPanel默认是纵向布局的 <Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWind
liulun
2018/01/12
1.6K0
学习WPF——WPF布局——初识布局容器
WPF入门到放弃(七)| 常用布局控件的用法
WPF也是我今年刚开始深入去了解,看了不少的学习视频和书籍,受剑神Python入门到放弃的启发,想把这段时间学习内容做个总结,一是因为我相信技术总是需要不断的总结与练习才能有所进步,二是希望帮助初学者对WPF有个初步的了解,大家一起探讨学习进步。
剑指工控
2021/11/08
1.8K0
WPF入门到放弃(七)| 常用布局控件的用法
【愚公系列】2023年04月 WPF运动控制平台-005.运动平台之功能实现(完结)
---- 一、运动平台之功能实现 1.位置计算 物理可用距离 (40000), 取料位:19945P, 打包位:-19360P 像素位置:取料位:20px 打包位:1020px 把脉冲转换位距离 步进驱动器设置细分 8 步进电机步进角 1.8° 导程:8mm 计算步进电机走1cm需要的脉冲数 360 / 1.8 = 200个脉冲转一圈 200 * 8 = 1600个脉冲转一圈(细分情况) 1600 / 8 = 200 (步进电机走1mm需要) 故:走1cm需要脉冲
愚公搬代码
2023/04/28
4580
【愚公系列】2023年04月 WPF运动控制平台-005.运动平台之功能实现(完结)
WPF实现Element UI风格的日期时间选择器
业务开发过程中遇到一个日期范围选择的需求,和Element UI的DateTimePicker组件比较类似,由两个日历控件组成,联动选择起始时间和结束时间。
czwy
2023/10/22
8140
WPF实现Element UI风格的日期时间选择器
WPF AvalonDock拖拽布局学习整理
AvalonDock提供了一个系统,允许开发人员使用类似于许多流行的集成开发环境(IDE)中的窗口对接系统来创建可自定义的布局。
全栈程序员站长
2022/09/13
2.9K0
WPF AvalonDock拖拽布局学习整理
【愚公系列】2023年04月 WPF运动控制平台-003.运动控制平台的UI设计
---- 一、运动控制平台的UI设计 1.代码 <Window x:Class="MotionPlatform.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/expr
愚公搬代码
2023/04/16
4950
【愚公系列】2023年04月 WPF运动控制平台-003.运动控制平台的UI设计
CaseStudy(showcase)布局篇-列表的排放与遮罩
做silvelight也有一段时间了,相册、游戏,刚刚完成的showcase这个小程序算是一个阶段了。这里就以showcase这个项目来做一下CaseStudy。 布局篇-列表的排放与遮罩 有数据就肯定会有列表,这里就写一下我使用的心得。 做列表这里我选用的是StackPanel,它可以横向或纵向排列。同样若是纵向排列。可以设置宽度一定。高度Auto。如果需要设置间距,那就在它的子控件设置。 重点说一下对StackPanel的遮罩。 这个做遮罩首先先把StackPanel组合到一个Canvas中。然后在ca
用户1172164
2018/01/16
7410
CaseStudy(showcase)布局篇-列表的排放与遮罩
silverlight4:摄像头占用状态检测以及二种截屏方法
状态检测主要包括二个方面:是否安装了摄像头,摄像头是否被其它程序占用 视频截图有二种方法:一是直接利用CaptureSource类的CaptureImageAsync异步截屏,另一种是直接利用Writ
菩提树下的杨过
2018/01/23
8470
silverlight4:摄像头占用状态检测以及二种截屏方法
【愚公系列】2023年10月 WPF控件专题 Grid控件详解
WPF控件是Windows Presentation Foundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。WPF控件可以分为两类:原生控件和自定义控件。
愚公搬代码
2023/10/06
6240
WPF布局
 转自:http://blog.csdn.net/lisenyang/article/details/18312067 WPF中存在5种布局元素 Grid:网格。可以自定义行和列并通过行列的数量,行高,列宽来调整控件的布局。近似于HTML中的Table StackPanel:栈式面板。可将包含的元素在水平或垂直方向排成一条线,当移除一个元素后,后面的元素会自动向前填充空缺 Cannas:画布。内部元素可以使用以像素为单位的绝对坐标进行定位,类似于Windows Fom的布局方式 DockPanel:泊靠式面
莫问今朝
2019/02/25
8970
SilverLight企业应用框架设计【二】框架画面
注意,这里每个顶部菜单的ICO图标不是动态的,朋友们,想让他变成动态的就自己动手吧
liulun
2022/05/09
6210
SilverLight企业应用框架设计【二】框架画面
WPF自学入门(二)WPF-XAML布局控件
上一篇介绍了xaml基本知识,我们已经知道了WPF简单的语法。那么接下来,我们要认识一下WPF的布局容器。布局容器可以使控件按照分类显示,我们一起来看看WPF里面可以使用哪些布局容器用来布局。
黄昏前黎明后
2019/09/11
1.9K0
WPF自学入门(二)WPF-XAML布局控件
相关推荐
C# Grid StackPanel DockPanel WrapPanel
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档