WPF入门教程:HelloWord及布局

WPF入门教程:HelloWord及布局

参考资料:
https://www.cnblogs.com/dotnet261010/p/6275821.html

1. 简介

1.1 什么是WPF?

WPF:Windows Presentation Foundation,是微软推出的基于Windows Vista的用户界面框架。属于.NET Framework 3.0的一部分。

1.2 WPF特点

  • 统一的编程模型:提供统一的控件、语音、视频、文档3D等技术;
  • 与分辨率无关:基于矢量绘图,能够支持各种分辨率的显示显示设备;
  • 硬件加速:基于Direct3D创建,所有内容都会被转换为3D三角形、材质和其它Direct3D对象,并由硬件负责渲染;
  • 声明式编程:引入新的XAML语言来开发界面,分离前后台;
  • 易于部署:除了可以发布为普通的桌面应用程序,还可以稍加改动发布为基于浏览器的应用程序。

1.3 常用工具

2. 创建第一个WPF程序

2.1 创建HelloWorld

新建一个WPF项目:

创建完成后,项目文件:

2.2 工程文件

(1)App.xaml:设置文件的起使文件和资源

(2)App.xaml.cs:WPF应用程序的中心类,.NET首先进入这个类的起始指令,从这里启动预想的窗口或者网页。

(3)MainWindow.xaml:窗口设计文件,和写安卓程序相似

(4)MainWindow.xaml.cs:MainWindow.xaml对应的后台代码文件,在这里定义界面逻辑。

项目创建完成后就可以直接编译运行。总体和开发Android应用很类似。

3. 布局Panel

合理的元素布局通常是我们写界面程序首先要考虑到的事情。WPF提供Panel来控制用户界面的布局。
用户布局的Panel总体有6个:StackPanel、WrapPanel、DockPanel、Canvas、Grid、UniformGrid。

3.1 StackPanel

栈布局,可以将元素排列成一行或者一列,且独占一行或者一列。
Orientation属性制定排列方式:Vertical(默认)/Horizontal。
剩余空间填充策略:HorizontalAlignment/VerticalAlignment

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

3.2 WrapPanel

环绕面板,将各个控件从左至右按行或列的顺序罗列,当长度或者高度不够时自动进行换行。
Orientation:Horizontal/Vertical,排列方向;
ItemHeight:所有元素都一致的高度;
ItemWidth:每个元素都一致的宽度。

当你改变窗口大小时,它们会自动重新排列。

3.3 DockPanel

停靠面板:定义一个区域,在此区域里,你可以使子元素围绕描点进行排列,多个停靠在同侧的元素会按照顺序排列。所有元素绝对不会重叠。
默认情况下,后添加的元素只能使用剩余的空间,剩余的最后一个控件总会填充剩余的区域,如若不像这样,需要制定DockPanel的属性LastChildFill为false,且为最后一个子元素设置停靠边。

3.4 Canvas

画布:精确控制每个元素的位置。即需要自己指定子元素相对画布的位置,否则所有元素都将出现在画布的左上角。
可以使用Left、Right、Top和Bottom四个附加属性来调整位置。
同时需要注意Canvas内的子控件不能使用两个以上的Canvas冲突的附加位置属性,如果同时设置两个冲突附加位置属性的话,那么后者会被忽略,比如同时设置Left和Right。

3.5 Grid

网格布局,即以表格形式对面板上的元素进行布局,大部分的界面开发框架都有这样的布局。
使用Grid,首先要向RowDefinitions和ColumnDefinitions属性中添加一定数量的RowDefinitions和?ColumnDefinitions元素,从而定义行数和列数。
而放置在Grid面板中的控件元素都必须显示采用Row和Column附加属性定义其放置所在的行和列,这两个属性的值都是从0开始的索引数,如果没有显式设置任何行或列,Grid将会隐式地将控件加入在第0行第0列。?Grid的单元格可以是空的,一个单元格中可以有多个元素。
Grid.ShowGridLines属性可以设置是否显示网格线。

更复杂的用法需要在实战中积累经验。

3.6 UniformGrid

提供了一种简化版的网格布局。当加入控件时,它会自动调整网格单元格数量和大小,使用起来非常简单。

原文地址:https://www.cnblogs.com/xl2432/p/12101227.html

时间: 2024-12-16 21:46:17

WPF入门教程:HelloWord及布局的相关文章

WPF入门教程系列六——布局介绍与Canvas

从这篇文章开始是对WPF中的界面如何布局做一个较简单的介绍,大家都知道:UI是做好一个软件很重要的因素,如果没有一个漂亮的UI,功能做的再好也无法吸引很多用户使用,而且没有漂亮的界面,那么普通用户会感觉这个软件没有多少使用价值. 一. 总体介绍 WPF的布局控件都在System.Windows.Controls.Panel这个基类下面,使用 WPF提供的各种控件在WPF应用程序中界面进行布局,同时对各种子控件(如按钮.文本框,下拉框等)进行排列组合. Pane类的公共属性太多了.就简单介绍几个常

WPF入门教程系列六——布局介绍与Canvas(一)

从这篇文章开始是对WPF中的界面如何布局做一个较简单的介绍,大家都知道:UI是做好一个软件很重要的因素,如果没有一个漂亮的UI,功能做的再好也无法吸引很多用户使用,而且没有漂亮的界面,那么普通用户会感觉这个软件没有多少使用价值. 一. 总体介绍 WPF的布局控件都在System.Windows.Controls.Panel这个基类下面,使用 WPF提供的各种控件在WPF应用程序中界面进行布局,同时对各种子控件(如按钮.文本框,下拉框等)进行排列组合. Pane类的公共属性太多了.就简单介绍几个常

WPF入门教程系列九——布局之DockPanel与ViewBox(四)

七. DockPanel DockPanel定义一个区域,在此区域中,您可以使子元素通过描点的形式排列,这些对象位于 Children 属性中.停靠面板其实就是在WinForm类似于Dock属性的元 素.DockPanel会对每个子元素进行排序,并停靠在面板的一侧,多个停靠在同侧的元素则按顺序排序. 如果将 LastChildFill 属性设置为 true(默认设置),那么无论对 DockPanel 的最后一个子元素设置的其他任何停靠值如何,该子元素都将始终填满剩余的空间.若要将子元素停靠在另一

WPF入门教程系列八——布局之Grid与UniformGrid(三)

五. Grid Grid顾名思义就是“网格”,它的子控件被放在一个一个实现定义好的小格子里面,整齐配列. Grid和其他各个Panel比较起来,功能最多也最为复杂.要使用Grid,首先要向RowDefinitions和ColumnDefinitions属性中添加一定数量的RowDefinitions和 ColumnDefinitions元素,从而定义行数和列数.而放置在Grid面板中的控件元素都必须显示采用附加属性语法定义其 放置所在的行和列,它们都是以0为基准的整型 值,如果没有显式设置任何行

WPF入门教程系列十——布局之Border与ViewBox(五)

九. Border Border 是一个装饰的控件,此控件绘制边框及背景,在 Border 中只能有一个子控件,若要显示多个子控件,需要将一个附加的 Panel 控件放置在父 Border 中.然后可以将子控件放置在该 Panel控件中. Border 的几个重要属性: Background:用用一个 Brush 对象来绘制背景 : BorderBrush:用一个Brush 对象来绘制边框 : BorderThickness:此属性设置 Border 边框的大小: CornerRadius:此属

WPF入门教程系列七——布局之WrapPanel与StackPanel(二)

三. WrapPanel WrapPanel布局面板将各个控件从左至右按照行或列的顺序罗列,当长度或高度不够是就会自动调整进行换行,后续排序按照从上至下或从右至左的顺序进行. Orientation--根据内容自动换行.当 Horizontal选项看上去类似于Windows资源管理器的缩略图视图:元素是从左向右排列的,然后自上至下自动换行.Vertical 选项看上去类似于Windows资源管理器的列表视图:元素是从上向下排列的,然后从左至右自动换行. ItemHeight--所有子元素都一致的

WPF入门教程系列(一) 创建你的第一个WPF项目

WPF入门教程系列(一) 创建你的第一个WPF项目 WPF基础知识 快速学习绝不是从零学起的,良好的基础是快速入手的关键,下面先为大家摞列以下自己总结的学习WPF的几点基础知识: 1) C#基础语法知识(或者其他.NET支持的语言):这个是当然的了,虽然WPF是XAML配置的,但是总还是要写代码的,相信各位读者应该也都有这个基础了. 2) HTML语言:虽然WPF是窗体程序但是由于使用的XAML语言,如果以前接触过HTML.XHTML.ASP.NET之路的东西的话会,接受这些标签会很有帮助的,如

WPF入门教程系列(二) 深入剖析WPF Binding的使用方法

WPF入门教程系列(二) 深入剖析WPF Binding的使用方法 同一个对象(特指System.Windows.DependencyObject的子类)的同一种属性(特指DependencyProperty)只能拥有一个binding. 这一点可以通过设置binding对象的方法名得知: public static BindingExpressionBase SetBinding( DependencyObject target, DependencyProperty dp, BindingB

WPF入门教程系列二——Application介绍

原文:WPF入门教程系列二--Application介绍 一.Application介绍 WPF和WinForm 很相似, WPF与WinForm一样有一个 Application对象来进行一些全局的行为和操作,并且每个 Domain (应用程序域)中仅且只有一个 Application 实例存在.和 WinForm 不同的是WPF Application默认由两部分组成 : App.xaml 和 App.xaml.cs,这有点类似于 Asp.Net WebForm,将定义和行为代码相分离. 微