首页 > 其他分享 >LYT-WPF-基础-布局-StackPanel面板

LYT-WPF-基础-布局-StackPanel面板

时间:2023-05-31 11:03:48浏览次数:47  
标签:LYT 元素 StackPanel 布局 排列 WPF 面板

已亲测!本文转自:WPF教程二:布局之StackPanel面板 - .NET开发菜鸟 - 博客园 (cnblogs.com),感谢~~

应用程序界面设计中,合理的元素布局至关重要,它可以方便用户使用,并将信息清晰合理地展现给用户。WPF提供了一套功能强大的工具-面板(Panel),来控制用户界面的布局。你可以使用这些面板控件来排布元素。如果内置布局控件不能满足需要的话,还可以创建自定义的布局元素。

面板(Panel)
WPF用于布局的面板主要有6个,StackPanel(栈面板)、WrapPanel(环绕面板)。DockPanel(停靠面板)、Canvas(画布)、Grid(网格面板)和UniformGrid(均布网格)。

StackPanel:栈面板

栈面板,可以将元素排列成一行或者一列,其特点是:每个元素各占一行或者一列,Orientation属性指定排列方式:Vertical(垂直)【默认】、Horizontal(水平),默认情况下,水平排列时,每个元素都与面板一样高;垂直排列时,每个元素都与面板一样宽。如果包含的元素超过了面板空间,它只会截断多出的内容。 元素的Margin属性用于使元素之间产生一定得间隔,当元素空间大于其内容的空间时,剩余空间将由HorizontalAlignment和 VerticalAlignment属性来决定如何分配。

1、垂直方向排列

界面运行效果:

使用XAML代码实现:

<Window x:Class="WpfDemo.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="StackPanel面板" Height="237" Width="525" WindowStartupLocation="CenterScreen">
    <StackPanel x:Name="stackpanel" Margin="0" Orientation="Vertical">
        <Button Content="第一个"></Button>
        <Button Content="第二个"></Button>
        <Button Content="第三个"></Button>
        <Button Content="第四个"></Button>
    </StackPanel>
</Window>

2、水平方向排列

界面运行效果:

使用XAML代码实现:

<Window x:Class="WpfDemo.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="StackPanel面板" Height="237" Width="525" WindowStartupLocation="CenterScreen">
    <StackPanel x:Name="stackpanel" Margin="0" Orientation="Horizontal">
        <Button Content="第一个"></Button>
        <Button Content="第二个"></Button>
        <Button Content="第三个"></Button>
        <Button Content="第四个"></Button>
    </StackPanel>
</Window>

注: 当把StackPanel的FlowDirection属性设置为RightToLeft,Orientation属性设置为Horizontal,StackPanel将从右向左排列元素。

<Window x:Class="WpfExample01.StackPanel_FlowDirection"
        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:WpfExample01"
        mc:Ignorable="d"
       Title="StackPanel面板" Height="237" Width="525" WindowStartupLocation="CenterScreen">
    <StackPanel x:Name="stackpanel" Margin="0" Orientation="Horizontal" FlowDirection="RightToLeft">
        <Button Content="第一个"></Button>
        <Button Content="第二个"></Button>
        <Button Content="第三个"></Button>
        <Button Content="第四个"></Button>
    </StackPanel>
</Window>

 

标签:LYT,元素,StackPanel,布局,排列,WPF,面板
From: https://www.cnblogs.com/ViolinHuang/p/17445433.html

相关文章

  • WPF RichTextBox 过滤中文不生效的问题
    WPFRichTextBox过滤中文不生效的问题1.问题使用系统自带的OnPreviewTextInput事件,过滤用户输入时,可以在OnPreviewTextInput中利用e.Handled=true过滤英文和数字等的输入,但是无法过滤中文字符的录入。2.解决方法不使用系统的PreviewTextInput事件,而是调用TextCompositionMa......
  • 界面组件Telerik UI for WPF可轻松实现直方图,让数据可视化更简单
    TelerikUIforWPF拥有超过100个控件来创建美观、高性能的桌面应用程序,同时还能快速构建企业级办公WPF应用程序。UIforWPF支持MVVM、触摸等,创建的应用程序可靠且结构良好,非常容易维护,其直观的API将无缝地集成VisualStudio工具箱中。TelerikUIforWPF|下载试用TelerikUI......
  • WPF基础入门——绘画和动画(Draw&Animation)
    本篇文章学习于:刘铁猛老师《深入浅出WPF》XAML语言针对的是界面美化问题,可以让设计师直接加入开发团队、降低沟通成本。XAML的图形绘制功能非常强大,可以轻易绘制出复杂的图标、图画。WPF支持“滤镜”功能,可以像Photoshop那样为对象添加各种效果。WPF原生支持动画开发,无论是设......
  • Wpf基础入门——模板和样式(Template&Style)
    本篇文章学习于:刘铁猛老师《深入浅出WPF》什么是模板?在WPF中,通过引入模板(Template)微软将数据和算法的“内容”与“形式”解耦了。WPF中的Template分为两大类:ControlTemplate是算法内容的表现形式,一个控件怎样组织其内部结构才能让它更符合业务逻辑、让用户操作起来更舒服就......
  • WPF属性(依赖属性&附加属性)
    本篇文章学习于:刘铁猛老师《深入浅出WPF》什么是属性?属性又称为CLR属性(CLR,CommonLanguageRuntime)。我们既可以说CLR属性是private字段的安全访问包装,也可以说一个private字段在后台支持(back)一个CLR属性。classPerson{privatestringname;publicstringNam......
  • WPF事件(事件&路由事件)
    本篇文章学习于:刘铁猛老师《深入浅出WPF》WPF的树型结构路由(Route)一词的大意是这样:起点与终点间有若干个中转站,从起点出发后经过每个甲转站时要做出选择,最终以正确(比如最短或者最快)的路径到达终点。WPF把这种直接消息模型升级为可传递的消息模型——前面我们已经知道WPF......
  • WPF命令(Command)
    本篇文章学习于:刘铁猛老师《深入浅出WPF》命令是什么?你可能会问:“有了路由事件为什么还需要命令系统呢?”事件的作用是发布、传播一些消息,消息送达接收者,事件的使命也就完成了,至于如何响应事件送来的消息事件并不做规定,每个接收者可以使用自己的行为来响应事件。也就是说,事件......
  • Wpf基础入门——XAML篇
    本篇文章学习于:刘铁猛老师《深入浅出WPF》什么是“项目模板”?最简单的WPF程序App.xamlMainWindow.xamlMainWindows.cs浅析用户界面的树型结构示例:在XAML中为对象属性赋值Attribute=Value形式例如:【不能设置太复杂的值】可以注意到在xaml文件中设置的value都是str......
  • Wpf基础入门——绑定(Binding)
    本篇文章学习于:刘铁猛老师《深入浅出WPF》Bing基础Binding更注重表达它是一种像桥梁一样的关联关系。WPF中,正是在这段桥梁上我们有机会为往来流通的数据做很多事情。如果把Binding比作数据的桥梁,那么它的两端分别是Binding的源(Source)和目标(Target)。一般情况下,Binding源是......
  • Wpf基础入门——资源(Resources)
    本篇文章学习于:刘铁猛老师《深入浅出WPF》WPF对象级资源每个WPF的界面元素都具有一个名为Resources的属性,这个属性继承自FrameworKElement类,其类型为ResourceDictionary。ResourceDictionary能够以“键一值”对的形式存储资源,当需要使用某个资源时,使用“键一值”对可以索引......