zoukankan      html  css  js  c++  java
  • 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项目:
    image.png
    创建完成后,项目文件: image.png

    2.2 工程文件

    (1)App.xaml:设置文件的起使文件和资源
    image.png
    (2)App.xaml.cs:WPF应用程序的中心类,.NET首先进入这个类的起始指令,从这里启动预想的窗口或者网页。
    image.png
    (3)MainWindow.xaml:窗口设计文件,和写安卓程序相似
    image.png
    (4)MainWindow.xaml.cs:MainWindow.xaml对应的后台代码文件,在这里定义界面逻辑。
    image.png

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

    3. 布局Panel

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

    3.1 StackPanel

    栈布局,可以将元素排列成一行或者一列,且独占一行或者一列。
    Orientation属性制定排列方式:Vertical(默认)/Horizontal。
    剩余空间填充策略:HorizontalAlignment/VerticalAlignment
    image.pngimage.png
    注:当把StackPanel的FlowDirection属性设置为RightToLeft,Orientation属性设置为Horizontal,StackPanel将从右向左排列元素。

    3.2 WrapPanel

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

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

    3.3 DockPanel

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

    3.4 Canvas

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

    3.5 Grid

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

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

    3.6 UniformGrid

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

  • 相关阅读:
    C语言:SQLITE3的学习
    C语言:json库使用学习
    C语言:XML学习
    glib实践篇:接口定义与实现
    glib实践篇:父类与子类
    python简易爬虫实现
    Esxi开虚拟机测试性能
    Hyper-V虚拟化性能测试
    配置飞儿云平台的PHP系统
    CentOS6.9安装OpenVZ
  • 原文地址:https://www.cnblogs.com/xl2432/p/12101227.html
Copyright © 2011-2022 走看看