WPF的控件和布局
开发工具与关键技术:Visual Studio 2015
作者:刘旭濠
撰写时间:2019年05月15日
首先一开始我们先说下控件的分类,控件它虽然没有数据这些信息重要,但是控件它也是不可缺失的,毕竟控件还是要控制数据这些的呀,比如查看,删除啊这些,要是仔细观察它,控件是分为6类:
布局控件:可以容纳多个控件或嵌套其他布局的控件,用于在UI上组织和排 列控件。其父类为Panel。
内容控件:只能容纳一个控件或者布局控件作为他的内容。所以经常借助布局控件 来规划其内容。其父类为ContentControl。
带标题内容控件:相当于一个内容控件,但是可以加一个标题,标题部分也可以容 纳一个控件或者布局,其父类为HeaderedContentControl。
条目控件:可以显示一列数据,一般情况下,是数据的类型是相同的。其共同的基 类为ItemsControl。
带标题的条目控件:和上面的带标题内容控件类同,其基类 为HeaderdeItemsControl。
特殊内容控件:这类控件比较独立,但也比较常用,如 TextBox,TextBlock,Image等。
比如我的这个控件
点击则是内容控件Button也算是了至于为什么,因为内容控件的最大的特征就是有一个Content属性, Content接收的是一个Object类型,或许立即想到莫非Button就是一个内容控件, 确实,Button算是一个内容控件,凡是内容控件都继承自ContentControl,因为Content属 性就是属于ContentControl。
Button Margin=“79,86,85.4,45.8” >点击
Margin="79,86,85.4,45.8"这个则是位。
那么什么是控件就是指对数据和方法的封装。控件可以有自己的属性和方法,其中属性是控件数据的 简单访问者,方法则是控件的一些简单而可见的功能、控件创建过程包括设计、开发、调试 (就是所谓的3Ds开发流程,即Design、Develop、Debug)工作, 然后是控件的使用。开发 者应该掌握的三项主要内容是:属性、事件和方法。
接下来我们就说说布局吧(简单的来说就是其他控件还没弄出来不好说(/滑稽))
在xaml里面总共有5个布局,分别是,Grid(网格布局)- DockPanel(泊靠式面板。)- StackPanel(栈式面板)- WrapPane(自动折行面板)- Canvas(画布),它们分别有什么不同呢我们会慢慢说出来的(简单说就是懒)
现在我们先说说Grid网格布局吧,网格布局嘛简单的来说就是把,它的子控件被放在一个一个实现定义好的小格子里面,整齐配列。Grid和其他各个Panel比较起来,功能最多也最为复杂。
那么要使用Grid,首先就要向RowDefinitions和ColumnDefinitions属性中添加一定数量的RowDefinitions和 ColumnDefinitions元素,从而定义行数和列数。 而放置在Grid面板中的控件元素都必须显示采用附加属性语法定义其 放置所在的行和列,它们都是以0为基准的整型 值,如果没有显式设置任何行或 列,Grid将会隐式地将控件加入在第0行第0列。
和这个一样
<Window x:Class="lowbi.啦啦啦"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Icon="D:\宠物\lowbi\lowbi\images\喜欢.png"
Title="啦啦啦" Height="300" Width="500">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="7*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="3*" />
<ColumnDefinition Width="11*"/>
</Grid.ColumnDefinitions>
<Grid Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2">
<Border>
<Border.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FF3CDFFD" Offset="0"/>
<GradientStop Color="#FF5DDDF6" Offset="1"/>
<GradientStop Color="#FFD5EFF4" Offset="0.503"/>
</LinearGradientBrush>
</Border.Background>
</Border>
</Grid>
<TextBlock Text=" 搞个叽叽" Width="100" VerticalAlignment="Center" FontSize="20" />
</Grid>
</Window>
调起来也是挺好玩的emmm,这里有点不好说,你们慢慢调试吧
那么Grid的布局比较适用于,Ui布局的大框架设计,大量UI元素需要成行或者成列对齐的情况,UI尺寸改变的时候,元素需要保留固有的宽度和高度比列。布局就到这里了还是挺好玩的