WPF
小唐要努力
这个作者很懒,什么都没留下…
展开
-
WPF学习笔记——29)行为
1、行为之前讲过的样式是用来设置元素统一属性的,而在更多的用户界面设计中,我们选要用到大量的动画和其他效果,这些代码十分繁杂,但是有很多通用的地方。为了减轻用户设计的任务,我们使用行为这一特性,将通用的行为内容封装到行为特性中,可以是基本或者复杂的功能,并且可以将该行为应用到其他任意程序。2、创建行为我们在一个新的WPF程序中创建行为,首先我们要添加System.Windows.Interactivity.dll的引用,路径为C:\Program Files (x86)\Microsoft原创 2020-05-27 16:44:57 · 306 阅读 · 0 评论 -
WPF学习笔记——28)触发器
在WPF中,当使用样式、资源以及数据绑定时,即使不使用代码,也能完成大部分功能。触发器就是实现该功能的另一种方法,可以自动完成简单样式的改变。1、简单触发器我们可以为任何一个依赖项属性关联一个简单触发器,每个简单触发器都关联了一个正在监视的属性。<Window x:Class="_28.Trigger.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"原创 2020-05-27 15:31:56 · 391 阅读 · 0 评论 -
WPF学习笔记——27)样式基础
1、样式基础样式是一种可以应用于元素属性的集合,与css类似。可以定义通用的格式化的特性集合,在整个应用程序中都可以应用这些样式。2、使用样式我们对元素的属性设置可以利用资源,也可以直接利用元素属性,也可以使用样式,我们以设置按钮的字体为例,分别用三个方法对其字体属性进行设置:<Window x:Class="_27.Style_Base.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml原创 2020-05-27 14:55:31 · 286 阅读 · 0 评论 -
WPF学习笔记——26)资源字典
如果我们希望在多个项目中共享资源,那么我们可以通过资源字典的方式来实现。资源字典就是一个简单的xaml文档,这个文档就是专门用来存储共享资源的。1、创建资源字典我们首先新建一个WPF程序,右键项目属性,添加一个资源字典项,然后我们添加两个图像刷的资源。<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="...原创 2020-05-26 21:11:30 · 578 阅读 · 0 评论 -
WPF学习笔记——25)资源基础
1、WPF资源WPF资源指的是在程序运行中一些有用的对象集合。与程序集资源不同的是,程序集资源是以二进制形式放进exe文件中,确保程序能够利用的资源。而这种对象资源是在某个地方定义,在其他地方使用的对象,与一些窗口或者控件一起定义。下面我们通过程序举例如何使用WPF资源:我们在Window窗体下定义一个画刷资源,然后在Button控件的背景上使用该资源:<Window x:Class="_25.Resource_Base.MainWindow" xmlns="原创 2020-05-26 17:11:36 · 190 阅读 · 0 评论 -
WPF学习笔记——23)绑定元素对象
简单的说,数据绑定是一种关系。这个关系在WPF程序中体现为从某个对象中提取信息,然后将信息应用到另一个对象中。1、绑定表达式我们设置一个滑动条,通过滑动条的Value值控制下方文本的字体大小<Window x:Class="_23.Binding_Elements.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://s原创 2020-05-26 14:34:49 · 355 阅读 · 0 评论 -
WPF学习笔记——24)绑定到非元素对象
当我们需要绑定到非元素对象时,我们就不能够使用元素的名称属性,只能使用以下三种属性中的一个。1、Source属性是指向源对象的引用,也就是数据的对象。<Window x:Class="_24.Bingding_non_Elements.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.原创 2020-05-26 15:32:05 · 312 阅读 · 0 评论 -
WPF学习笔记——22)WPF程序集资源
WPF应用程序的程序集资源和其他.Net应用程序的程序集资源本质上是相同的,都是为项目添加一个文件,从而VS可以将该资源嵌套到已编译过的exe或者dll中。二者之间的区别在于引用资源的寻址方式不同。1、添加资源我们新建一个WPF应用程序,然后右键项目新建一个文件夹,添加一个图片。接着我们在Grid容器中插入一个Image控件,单击Image在属性中找到Source设置图片路径,选中我们刚刚添加的图片,这样图片就插入到了程序中,并且在编译时会把图片作为二进制数据写入exe文件中,这样即使之后删除图原创 2020-05-26 14:33:06 · 426 阅读 · 0 评论 -
WPF学习笔记——21)单实例的应用程序
单实例应用程序指的是有些应用程序无论打开多少窗口,在任务程序管理器中可以看到仅仅只有一个应用程序,该程序控制了这些窗口,比较常见的就有word文档的应用程序WINWORD.EXE,一个程序控制多个word文档。而相反,记事本就是一种多实例应用程序。本节主要介绍如何利用WPF创建单实例应用程序。首先我们新建一个WPF程序,将原来的App删除,新建一个WPFapp类,对启动响应函数进行重写。 class WPFapp : Application { protect原创 2020-05-26 14:31:50 · 470 阅读 · 0 评论 -
WPF学习笔记——20)Application类任务
本小节我们介绍如何使用Application类来处理一些常用的需求。1、显示初始界面WPF程序的运行速度非常快,可以在很短的时间内加载所需要的环境并启动程序。但是如果我们设置了比较耗时的初始化步骤或者加载了图形,那么我们就可以利用WPF提供的简单初始界面的特性。我们以显示一张照片为例,我们首先右键项目添加一个现有项,选择一张照片,然后将照片的属性生成操作改为SplashScreen然后我们运行程序可以发现该图片会在窗口出现前一闪而过,大概持续0.3s的时间。2、处理命令行参数原创 2020-05-26 14:30:37 · 399 阅读 · 0 评论 -
WPF学习笔记——19)Application类
WPF程序就是Application类的实例来表示的,下面我们主要通过以下四点介绍Application类:1、创建Application对象首先我们创建一个WPF的项目,在项目里面添加一个类。在类中写入Main函数,创建Application类,并调用Run方法启动程序: class StartUp { [STAThread()] //单线程 static void Main() { Applic.原创 2020-05-25 15:04:55 · 725 阅读 · 0 评论 -
WPF学习笔记——18)日期控件
WPF中比较常用的日期控件有Calendar和DatePicker控件。1、Calendar控件Calendar控件显示的是一个日历,和Windows自带的日历很相似,下面我们介绍一些常用属性。DisplayMode:日历显示的形式,可以按月、年、十年显示。 DisplayDateStart:日历显示的起点日期,起点之前的日期都不显示。 DisplayDateEnd:日历显示的终点日期,终点之后的日期都不显示。 FirstDayOfWeek:日历显示每周的第一天。西方通常是周日,国内则习惯原创 2020-05-25 11:01:38 · 1678 阅读 · 0 评论 -
WPF学习笔记——17)基于范围的控件
WPF提供了三个使用范围概念的控件。这些控件使用某个范围内一个特定数值。分别由ScrollBar、ProgressBar、Slider组件。这里我们仅介绍ProgressBar和Slider组件,一般用ScrollViewer控件来代替ScrollBar的作用。1、SliderSlider控件是滑动条控件。主要包含以下属性Orientation:滑动条的显示方式,有垂直和水平的 Maximum:滑动条尽头的刻度 Minimum:滑动条最低的刻度,一般默认为0 Value:滑动条在加原创 2020-05-24 19:39:29 · 266 阅读 · 0 评论 -
WPF学习笔记——16)列表控件
WPF提供了许多包装集合的控件。这里包括了ListBox列表控件、ComboBox组合框控件,还有其他的更多的空间我们就不介绍了。1、ListBoxListBox就是包含了列表的一个控件,我们用WPF程序来说明如何使用。ListBox主要通过ListItem这个属性来创建元素,可以包括文本,图片和按钮等等其他控件,也可以包括一些布局面板。我们可以通过ListBox的SelectedIndex和SelectedItem属性访问选中对象的下标和选中的对象,我们创建三个复选框为例说明。原创 2020-05-24 19:01:40 · 1162 阅读 · 0 评论 -
WPF学习笔记——15)文本控件
试试原创 2020-05-24 16:59:30 · 980 阅读 · 0 评论 -
WPF学习笔记——14)带标题的内容控件
带标题的内容控件指的是同时有一个内容属性和一个标题属性的控件。常见的带标题的内容控件有GroupBox、TableItem、Expander。1、GroupBoxGroupBox是比较简单的一个控件,显示为一个带标题的方框。方框内可以添加一个内容,我们一般加入布局容器,这样就可以放置很多元素到布局容器。标题的设置我们通过属性特性Header来设置2、TabItemTabItem是选项卡组件,一般是作为TabControl的一个元素。一个TabControl可以有很多Tab原创 2020-05-24 16:57:57 · 823 阅读 · 0 评论 -
WPF学习笔记——13)特殊容器控件ScrollViewer
试试原创 2020-05-24 15:58:26 · 817 阅读 · 0 评论 -
WPF学习笔记——12)内容控件
内容控件是一种比较特殊的控件类型,可以包含显示一个内容。内容控件可以仅且包含一个嵌套的元素。常见的Label控件和Button控件等都是内容控件。1、Content属性Content属性只接受单一的对象,支持任何类型。我们以按钮控件为例:<Window x:Class="_12.Content_Control.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"原创 2020-05-23 21:38:09 · 660 阅读 · 0 评论 -
WPF学习笔记——11)控件类
控件属于元素的一种,一般是用来与用户进行交互的元素。比如能够接收键盘或者鼠标输入的一些元素。所有控件均继承与Control类,下面我们分三点简单对控件类的一些属性进行介绍。1、背景画刷与前景画刷所有的控件均有背景与前景的概念。背景指的是控件的表面,前景指的是文本。在WPF中我们分别使用BackGround和Foreground两个属性来描述。一般对这两个属性进行赋值有两种方式,一个是C#代码进行赋值,一个是XAML语句赋值。1)代码赋值我们对窗口进行加载时添加一个响应函数,点击窗口,原创 2020-05-23 20:24:48 · 733 阅读 · 0 评论 -
WPF学习笔记——10)鼠标输入
鼠标输入也是一种常见的WPF事件类型,主要通过鼠标的操作来触发事件。常见的鼠标事件有MouseEnter和MouseLeave,分别是在鼠标移动到组件上和离开组件时触发的,这两个事件都是直接事件,尽在某个元素上触发,不会传播到别的元素上。除了这两种比较简单的直接时间,也包括一些冒泡路由事件和隧道路由事件,比如:PreviewMouseMove、MouseMove等我们以MouseMove为例,设计可以自动获取鼠标当前位置信息的程序:<Window x:Class="_10.Mouse原创 2020-05-23 17:14:40 · 461 阅读 · 0 评论 -
WPF学习笔记——9)键盘输入
WPF事件类型WPF通常包括下列五种重要的事件类型1、生命周期事件:在元素被被初始化,从加载到被删除这个生命周期时发生的。2、鼠标事件:鼠标的操作事件。3、键盘事件:键盘的操作事件。4、手写笔事件:手写设备的操作事件。5、多点触控事件:一个或多个手指在触控屏幕上的操作事件。键盘输入当用户按下键盘上的某个键时,一般会顺序触发下列一系列事件:PreviewKeyDown KeyDown PreviewTextInput TextInput PreviewKeyUp原创 2020-05-23 16:05:49 · 743 阅读 · 0 评论 -
WPF学习笔记——8)路由事件
路由事件是一种具有更强传播能力的事件,可以双向传播。路由事件与一般事件的区别在于:路由事件是一种用于元素树的事件,当路由事件触发后,它可以向上或向下遍历,不需要任何定制的代码。路由事件的三种方式1、直接路由事件与传统的.Net事件是非常类似的,都是用于一个元素,并且不能够传递给其他元素。2、冒泡路由事件是一种在元素树中向上传递的事件,事件首先由某个元素引发,然后向上传递给父元素处理事件,直到元素树的顶部。我们可以用一个简单的程序测试一下冒泡路由事件的传播路径:<Win原创 2020-05-23 15:15:31 · 385 阅读 · 0 评论 -
WPF学习笔记——7)Canvas面板
Canvas面板是一种根据具体坐标信息来确定元素布局位置的一种容器,是一种轻量化的布局容器。1、Canvas面板首先我们新建一个WPF程序,在默认的XAML中将原始的Grid布局容器删除。从工具箱中拖入Canvas控件进入窗口,去掉Canvas的长宽限制。如果我们这时把按钮组件拖入Canvas面板中,那么我们可以发现,按钮是通过Canvas.Left,Canvas.Top这两个属性特性来控制其在面板中的位置,同样的我们也可以使用Canvas.Right,Canvas.Bottom这两个或者其他特原创 2020-05-23 11:59:56 · 904 阅读 · 0 评论 -
WPF学习笔记——6)Grid面板
上一次我们介绍到了WrapPanel和DockPanel,而在WPF中,功能最强大的是GridPanel面板容器。Grid面板是将元素分割到网格中,往往可以完成其他布局做不到的效果,在设置Grid网格时,需要给出创建网格的行和列,然后再放置控件元素时指定需要放置的行列号,下面我们主要根据六个方面介绍Grid面板1、创建Grid面板与简单使用首先我们新建一个WPF程序,在默认的Grid布局下使用属性元素的方法定义Grid的行和列,并且分别加入对应的行数和列数<Grid>原创 2020-05-22 21:34:35 · 464 阅读 · 0 评论 -
WPF学习笔记——5)WrapPanel面板和DockPanel面板
上一节我们简单介绍了StackPanel的布局,为了能做出更好看的用户界面,往往一种布局容器是不够的,我们这里介绍了两种布局容器,分别为WrapPanel面板和DockPanel面板布局。1、WrapPanel面板WrapPanel面板以一行或者一列的形式来布置控件,当一行(列)放满之后自动转到下一行(列),可以利用Orientation属性设置按行布置还是按列布置。我们同样的在工具箱中拖入WrapPanel面板控件,去掉长宽的固定限制,在面板中添加三个按钮组件,可以看到按钮默认按行分布,我们可原创 2020-05-22 20:15:50 · 1183 阅读 · 0 评论 -
WPF学习笔记——4)使用StackPanel面板进行简单布局
WPF是用不同的容器来安排布局的,每一个容器都有自己的布局逻辑。对于WPF而言,窗口往往只能包含一个元素,为了能够显示多个元素,我们常常将元素放置到容器中,然后再将容器放置到窗口上。1、WPF布局原则1)不应该显式地限制容器元素的尺寸,比如设置固定尺寸大小为某个定值2)不应使用屏幕的坐标设定容器的位置,可以利用容器的Margin属性来对容器的留白大小进行设置3)布局容器和其子元素共享可使用的空间4)可以嵌套的使用布局容器2、使用StackPanel面板进行简单布局StackPan原创 2020-05-22 19:30:10 · 1229 阅读 · 0 评论 -
WPF学习笔记——3)使用代码和未编译的XAML创建WPF程序
沙雕原创 2020-05-22 18:37:13 · 321 阅读 · 1 评论 -
WPF学习笔记——2)仅用代码创建WPF应用程序
沙雕原创 2020-05-22 18:10:32 · 307 阅读 · 0 评论 -
WPF学习笔记——1)XAML基础
XAML是eXtensible Application Markup Language的英文缩写,相应的中文名称为可扩展应用程序标记语言,是用来实例化.Net对象的标记语言。主要用于构建WPF用户的界面。1、命名空间xmlns是XML中的一个特殊特性,它专门用来声明命名空间的。(原理有点类似C++里面的using namespace std)比如:xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"该命名空间包含原创 2020-05-22 17:37:51 · 285 阅读 · 0 评论