自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 问答 (2)
  • 收藏
  • 关注

原创 openCV手势识别之隔空移物

如何用openCV隔空移苹果 WHY前一阵子开始接触手势识别,觉得现在的库是真强大,13行代码就调出了手势识别,那手势识别出来后,可以做什么呢?今天,我又跟着印度小哥玩了一把隔空移物。WHAT什么事隔空移物呢?就是利用手指间的距离,控制图片的位置。当食指和中指并拢且在图片里面时,就更新图片的坐标(跟着食指走),所以看起来就好像被手指拖着移动了。道理很简单,我从网上找了一个透明底的苹...

2021-12-05 21:02:06 3125

原创 13行代码敲出了手势识别

如何用13代码实现手势识别 WHY计算机视觉正如火如荼,我却好像一个局外人,完全不知其发展。于是,我想进去看看,这计算机视觉到底是个啥?好多次看到 OpenCV 这东西,这个周末终于有时间稍微简单了解一下了,但是真的很简单(一语双关哈)。WHAT计算机视觉(Computer Vision),用大白话来说,就是如何通过摄像头让计算机认识人类世界。要知道,计算机只认识 0 和 1,所...

2021-11-21 21:53:18 2706

原创 在iPhone上远程搭建WordPress

先秀一把: 如何在iPhone上远程建站 WHY接着上篇《初识轻量应用服务器》,从纯净 Ubuntu 20.04来搭建 Wordpress。建站这个事儿吧,已经太古老了,这会儿都 2021 年了,再拿出来说总显得有些腐朽。于是我就想来点不一样的吧,使用 iPhone 来远程建站。WHAT建站是个啥,还是有必要提一嘴的。我现在手上有个云服务器,里面空空如也,只装了一个 Linu

2021-11-14 20:01:04 2229

原创 玩转轻量应用服务器——初识

WHY云服务器不是什么新鲜事了,但是一直没有玩过,为啥,一来没有实际使用场景,二来这是一个花钱的东西,没必要。这次偶然在一个公众号上看到阿里云的双11活动,很划算,简直就是白菜价。选具体型号的时候发现,以前只有ECS(Elastic Compute Service,即云服务器),现在又多了一个叫“轻量应用服务器”。考虑到自己最可能做的事情可能就是个人建站,就选了“轻量应用服务器”,2核4G,200RMB管3年。活动应该还在继续,有需要的直接进这里。WHAT那什么是轻量应用服务器呢?它与E

2021-11-07 11:58:12 452

翻译 WPF教程(三十六)UpdateSourceTrigger属性

在前面的文章我们看到,TextBox中的变化并不是立即传递到源,而是在TextBox失去焦点后,源才更新。这种表现由绑定中的UpdateSourceTrigger属性来控制。它的默认值是Default,源会根据你绑定的属性来更新。写这篇文章的时候,除了Text属性之外的所有属性,源会随属性的改变而立即更新。Text属性不一样,它只有在目标元素失焦后才更新。UpdateSourceTrigger

2017-01-09 22:12:39 12556

原创 VS2012下制作ActiveX控件并添加到网页

为了节省时间,大部分资源取自http://www.cnblogs.com/li-peng/p/3455247.html,感谢作者。流程概览1.创建ActiveX控件——按钮2.定义一个接口,并在控件中实现3.部署安装4.CAB打包5.添加到网页中进行测试一. 创建ActiveX控件——按钮1.新建一个Window窗体控件库

2016-12-16 16:46:35 6754

原创 深度探索串口通信

串口通信,用的太多了,然而一直没有深入研究过。从刚开始入门单片机,就学习了如何用电脑和单片机通信,但是一旦通信成功后,就再也没有仔细去深入研究过了。这次在使用嵌入式Linux开发板的过程中,被一个问题卡了很久很久,使得我重新认识了串口通信。问题是这样的:JZ2440开发板带有1个USB-COM口,三个普通的COM口。电脑通过一条USB线,插到板子的USB-COM口,与板子相连,用来

2016-12-08 23:18:56 1318 1

翻译 WPF教程(三十五)使用DataContext

DataContext属性是绑定的默认源,除非你具体指定了另外一个源,就像上一章里面我们使用了ElementName属性。它由FrameworkElement类定义,大部分UI控件包括WPF窗口都继承于此类。简单地说,它允许你指定一个绑定的基。DateContext并没有默认源(刚开始的时候是NULL),但是它贯穿整个空间层次结构,你可以为窗口设置一个DataContext,然后在任意的子控件

2016-11-17 22:56:57 32434

翻译 WPF教程(三十四)Hello, bound world!

就像我们在最开始的"Hello,world!"例子中一样,我们通过一个"Hello,bound world!"例子来展示使用数据绑定是多么简单。现在就让我们跳进这个例子来看看:<Window x:Class="WpfTutorialSamples.DataBinding.HelloBoundWorldSample" xmlns="http://schemas.microsoft

2016-11-14 23:46:28 2835

翻译 WPF教程(三十三)数据绑定简介

维基百科这样描述数据绑定的概念:数据绑定是一种通用的技术,把两个数据或信息资源绑定到一起,并保存数据同步。在WPF中,微软把数据绑定放在了重要位置,一旦你开始学习WPF,你就会发现,它几乎是你做的所有事情的一个重要方面。如果你来自WinForms的世界,你会惊讶于如此高度重视数据绑定,但是一旦你使用过它,你就会喜欢上它。它让很多事情变得清晰,易于维持。WPF中的数据绑定是把代码中的数据带到

2016-11-03 23:01:00 2488

翻译 ASP.NET教程(一) 概述

欢迎来到ASP.NET教程。根据微软的定义,“ASP.NET是一种用于创建强大、动态的网站应用的技术,它是.NET 框架的一部分”。本教程将从零开始来指导你学习ASP.NET,不需要任何服务器端脚本的基础。当然啦,有基本的HTML和CSS知识是最好的了。如果你已经学过经典ASP或者PHP,也不要得瑟,在这里你并没有什么优势,因为ASP.NET是一种全新的处理技术。.NET是一种独立的语言,这意

2016-11-03 22:04:36 1914

翻译 WPF教程(三十二)使用Grid:一个联系人表格

在前面几章,我们学习了很多理论知识,用到了很多理论上的例子。在这一章,将把我们在前面所学到的东西运用到一个实际的例子当中:一个简单的联系人表格。这个联系人表格的好处是它只是普遍使用的一个对话框,你可以将用到的技术用到几乎任何你想要创建的对话框里。第一个要测试的东西非常简单,是一个基本的联系人表格。总共使用三行,两行自动高度,最后一行使用*号高度,它占据剩余的可用空间。<Window x

2016-11-02 23:17:01 2685

翻译 WPF教程(三十二)GridSplitter分割线

在前面的章节你已经学到,使用Grid面板可以很容易的将可用空间划分成单个单元格。使用行和列的定义,又很容易控制每行或每列占据多少空间。但是,如果你想让用户来改变这些该怎么办呢?这个时候GridSplitter就出场了。GridSplitter使用起来非常简单,把它加到Grid里的某一行或者某一列,再分配合适的空间如5个像素这样就可以了。它允许用户从左边到右边,从上到下进行拖拽,这样就改变了行或

2016-11-01 23:16:15 39195 2

翻译 WPF教程(三十一)Grid网格跨越

Grid默认每一个控件占据一个单元格,但是有些情况下你需要某个控件占据多行或者多列。在这种情况下,可以使用ColumnSpan和RowSpan这两个附加属性来实现。这两个属性默认的值都是1,也就是一个单元格,你可以指定大于1的数字来让控件跨越多行或者多列。下面的例子使用了ColunmSpan属性:<Window x:Class="WpfTutorialSamples.Panels.Grid

2016-10-31 22:43:58 18657

翻译 WPF教程(三十)Grid单元格

目前为止,我们只使用了带*号的宽和高,它指定了一行或者一列应该占据整个空间的比例。其实还有其他方法指定列宽和行高:绝对像素和自动宽高。下面的例子混合了这三种方法:<Window x:Class="WpfTutorialSamples.Panels.GridUnits" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/pre

2016-10-29 11:50:01 4169 2

翻译 WPF教程(二十九)Grid行和列

上一章我们介绍了重要的Grid面板,还展示了一些如何使用它的例子。这一章我们来做一些更深入的研究,这正是Grid真正闪光的地方。首先,加入更多的行和列,实现一个真正的表格布局。<Window x:Class="WpfTutorialSamples.Panels.TabularGrid" xmlns="http://schemas.microsoft.com/winfx/2006/x

2016-10-29 11:07:03 13687 1

翻译 WPF教程(二十八)Grid

Grid面板也许是最复杂的面板类型了。Grip可以包含多行多列。你可以定义每一行的高度和每一列的宽度,通过一个像素值、可用空间的百分比或者自动分配这三种方式。自动分配会根据内容自动调整行高和列宽。Grip一般用于其他面板无法实现的情形,譬如如你需要很多列而且需要联合其他面板。在Grid中的所有控件都会被最大化,同时一个叠一个放置。这是Grid最基本的形式。<Window x:Class="

2016-10-27 21:20:52 2346

翻译 WPF教程(二十七)DockPanel

DockPanel很容易就能把内容停靠到上下左右四个方向上。这个在某些场景显得非常重要,譬如你想把窗口划分成指定区域,除非禁用这个特性,否则,DockPanel中最后一个元素将自动填充剩余的空间。就像WPF其他面板控件一样,我们通过使用附加属性来看看这个面板的优势。在例子中用了DockPanel.Dock属性,它决定了子控件将停靠的方向。如果不指定这个属性,第一个控件就会被停靠到左边,最后一个

2016-10-27 20:56:38 12461 1

翻译 WPF教程(二十六)StackPanel

StackPanel基本和WrapPanel一样,但是有一个重要的区别:StackPanel不会自动切换内容。相反,它会让内容朝一个方向延伸,一个接一个的堆起来。先来快速看一个例子:<Window x:Class="WpfTutorialSamples.Panels.StackPanel" xmlns="http://schemas.microsoft.com/winfx/20

2016-10-23 12:03:18 3566

翻译 WPF教程(二十五)WrapPanel

WrapPanel用于一个接一个的排列子控件,以水平或者垂直方向,当空间不足时就会自动切换到下一行。适合于需要水平或者垂直排列控件且能自动换行的情况。水平方向排列时,每一行所有子控件的高度都被统一成固定的值,这个值由最高的那个决定;每一列垂直方向排列时,所有子控件的宽度都被统一成固定的值,这个值由最宽的那个决定。我们先来看默认情况下的WrapPanel:<Window x:Class=

2016-10-22 18:54:05 12532

翻译 WPF教程(二十四)Canvas

Canvas大概是最简单的面板了。在默认情况下,它什么都不做,你把控件放到它里面,然后通过具体的坐标来指定位置。如果你之前使用过其他UI库如WinForms,Canvas会让你感觉很亲切。然而它趋向于使用绝对坐标来控制子控件,如果你固定了文字的位置,或者内容是固定大小的,一旦用户调整窗口大小,面板不会做任何事情来调整。我们先来看例子,看看Canvas在默认情况下是如何工作的:<Wind

2016-10-22 17:55:38 7796

翻译 WPF教程(二十三)WPF面板简介

面板是WPF中最重要的控件之一,用于存放其他控件,或者控制窗口/页面的布局。由于一个窗体只能放置一个子控件,因此面板用来隔成多块区域,这些区域各自可以放置一个控件或者面板(别忘了面板也是控件)。面板分不同的形式,每一种都有其自己处理布局以及控制其子控件的方式。因此选择一种合适的面板对于实现你想要的形式和布局非常重要,尤其是你刚开始用WPF的时候,不是那么容易。下面的内容将简单地介绍每种面板,让

2016-10-22 16:38:39 2799

翻译 WPF教程(二十二)文本呈现

在本章节,我们讨论为什么有时候在WPF中文本呈现得很模糊,之后是如何修复的,你自己又如何控制文本的呈现。前面的教程我们有提到,其他UI框架如WinForms通过使用Windows API来实现各种功能,相对于这些框架,WPF总是通过其自身实现。在文本显示这里两者表现的非常明显——WinForms使用系统提供的GDI API来显示,而WPF拥有自己的文本呈现方式,更好的支持动画或者设备。不幸

2016-10-20 21:41:46 4977 1

翻译 WPF教程(二十一)工具提示

工具提示有各种叫法,意思都是一样的:在鼠标停留在某一个控件或者某个链接上时,显示其对应的额外信息。WPF中通过使用FrameworkElement基类中的ToolTip属性来实现,几乎所有控件都继承于此类。为控件指定一个工具提示非常简单,如下:<Window x:Class="WpfTutorialSamples.Control_concepts.ToolTipsSimpleSample"

2016-10-20 20:16:38 2829

翻译 WPF教程(二十)密码框

WPF中编辑常规的文字都是使用文本框,但是如果是输入密码呢?功能应该是一样的,但是我们不想周边的人看着我们一个字母一个字母的输入,这样密码就被泄漏了,因此我们想用别的字符来替代真实密码的显示。出于这个目的,WPF有一个密码框控件,用起来和文本框一样。<Window x:Class="WpfTutorialSamples.Basic_controls.PasswordBoxSample"

2016-10-19 22:51:45 23275

翻译 WPF教程(十九)单选框

单选框用于给用户提供一个选项表,但是只能选择其中的一项。用复选框也可以实现这样的功能,但是单选框更好的展示了他们能做的选择。<Window x:Class="WpfTutorialSamples.Basic_controls.RadioButtonSample" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presenta

2016-10-19 22:33:58 14380

翻译 WPF教程(十八)复选框

复选框用于勾选或者勾掉某一个选项,在后台代码中表现为一个布尔型值。还是直接来看代码吧,更形象:<Window x:Class="WpfTutorialSamples.Basic_controls.CheckBoxSample" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xm

2016-10-18 20:04:23 25161 1

翻译 WPF教程(十七)TextBox

文本框是WPF最基础的文本输入控件,允许终端用户编写文本,可以是一行文字,也可以是多行。单行文本框文本框是如此的简单,你都不需要设置任何属性,就可以拥有一个完整的可编辑区。<Window x:Class="WpfTutorialSamples.Basic_controls.TextBoxSample" xmlns="http://schemas.microsoft.co

2016-10-17 22:16:02 20640

翻译 WPF教程(十六)标签控件

标签控件其实和文本框长得很像。但是,标签除了文本属性,还有一个内容属性。就因为这一点,标签除了容纳文本之外,可以容纳各种控件。标签的内容可以是字符串,如下:<Window x:Class="WpfTutorialSamples.Basic_controls.LabelControlSample" xmlns="http://schemas.microsoft.com/winfx

2016-10-16 23:11:06 6941

翻译 WPF教程(十五)文本框——内联格式

上章我们学习了文本框最核心的功能:显示字符串,在必要的时候换行。我们还用了其他颜色来凸显文字,如果你想做的远远不止这些,怎么办?幸好文本框支持内联的内容。这些像控件一样的结构全部继承于内联类,这意外着它们可以作为文本的一部分来传递。支持的元素包括AnchoredBlock, Bold, Hyperlink, InlineUIContainer, Italic, LineBreak, Run,

2016-10-15 21:20:08 4991

翻译 WPF教程(十四)文本框

文本框本质上并不是一个控件,因为它不继承于控件类,然而在WPF中它使用情况和其他控件几乎一样,因此我们仍称它为控件。文本框控件是WPF中最基础的控件之一,非常实用。它将文字显示到屏幕上,和标签控件一样,但是比标签更简单,占资源更少。普遍的共识是标签用于简短的单行文本(包括图片),而文本框多用于多行文本。标签和文本框各有优点,根据具体情况来使用。在"Hello, WPF!"一章中,我们已经使

2016-10-13 23:46:24 7808

翻译 WPF教程(十三)WPF异常处理

如果你熟悉C#或其他.NET语言,那么一定知道异常处理。任何时候,如果你觉得有段代码很有可能会抛出一个异常,那么就应该用try-catch块来处理这个异常。考虑下面的例子:private void Button_Click(object sender, RoutedEventArgs e){ string s = null; s.Trim();}很明显,运行

2016-10-13 22:18:35 7827

翻译 WPF教程(十二)资源

WPF介绍了一个非常方便的概念:把数据储存为一种资源,无论是本地控件、本地窗口还是全局应用。数据可以是任何你想要的东西,从实际的信息到WPF控件的层次结构都行。这非常有用,你可以把数据放在一个地方,然后在其他地方调用它。这个概念被广泛用在样式和模版,我们后面会详细讲到。也可以用在很多别的地方,就像本章要说明的地方,例子如下:<Window x:Class="WpfTutorialSampl

2016-10-13 21:35:57 4605 2

原创 git工作实录

刚入门了git,然后在实际应用中就出现了很多问题。这种问题也只有在实践中才会发现。场景如下:我正在编写一个新的功能模块,突然接到通知说需要紧急修改一个bug。新的功能模块还没写完呢,没法提交,怎么办?大体结构如下:创建master、dev、bug三个分支。主分支master用于托管完整可用的代码。dev分支用于当前工作。bug分支用于随时修改bug,需要修改bug时创建

2016-10-09 12:59:07 1099

翻译 WPF教程(十一)WPF中的命令行参数

命令行参数这样是一种技术,传递一组参数到你希望开始的应用,以某种方式影响它。最普遍的例子就是使用一个具体的文件(如一个编辑器)打开应用。尝试使用Windows自带的记事本,在开始菜单选择运行或者按一下Win+R键,输入:notepad.exe c:\Windows\win.ini。这就在记事本中打开了win.ini文件(记得路径要正确哦)。记事本简单的寻找一条或多条参数,然后使用它们。你的应用也是

2016-10-07 22:21:12 6803

翻译 WPF教程(十)使用App.xaml

App.xaml是应用的声明起始点。在VS新建一个WPF应用,就能自动生成一个App.xaml,同时包含了后台代码文件App.xaml.cs。这两个文件都是局部类,和Window类非常相似,让你能够使用标记语言和后台代码。App.xaml.cs扩展了应用类,它是WPF窗口应用的中心类。.NET首先进入这个类的起始指令,从这里启动预想的窗口或者网页。同时这里订阅了重要的应用事件,如应用启动、未处

2016-10-07 21:37:09 23903 3

翻译 WPF教程(九)窗体

在创建WPF应用的时候,你第一个看到的就是窗体类。它作为窗体的基础,提供标准的边框、工具条、最大化、最小化和关闭按钮。WPF窗体是XAML文件和后台代码文件的混合体。在VS(Express)里面创建一个WPF应用,将会生成一个默认窗体,显示如下代码:<Window x:Class="WpfApplication1.Window1" xmlns="http://schemas.mic

2016-10-07 20:33:13 6078 1

翻译 WPF教程(八)WPF应用简介

本教程的终极目标是使用WPF创建应用。.NET能在所有装了.NET工具的平台上执行,最常见的还是微软的Windows.在这里我们所说的Windows应用,是指运行在Windows(或者其他兼容平台)下,而不是在浏览器或者因特网上。像其他.NET应用类型一样,WPF应用也只能运行在.NET框架里。幸运的是,从Vista开始,微软已经把.NET框架做到了所有Windows版本里,而且能够通过Win

2016-09-26 22:32:24 3560

翻译 WPF教程(七)XAML中的事件

大多流行UI框架都是事件驱动的,WPF也是如此。所有的控件,包括继承了控件类的窗口,公开了一系列事件,你可以直接订阅,这意味着当事件发生时,它会告知应用程序并执行相应动作。事件有很多种类别,通过鼠标和键盘来响应用户界面,这种是最常用的事件。大部分控件都包含KeyDown, KeyUp, MouseDown, MouseEnter, MouseLeave, MouseUp等事件。我们将仔细看

2016-09-22 23:11:18 8168 4

翻译 WPF教程(六) XAML基础

在前面的章节,我们讨论了XAML是什么以及用它来做什么,那么如何用XAML来创建控件呢?接下来的例子,我们将会看到,用XAML创建一个控件,就和写它的名字一样简单,当然了,这个名字是用尖括号括起来的。譬如,按钮看起来是这样的:XAML标签通过编写结束标签或者在开始标签之后加一个斜杠来结束:或者大部分控件允许你在开始标签和结束标签之间放置控件所需的内容,譬如,按钮控件允许你在开始标签

2016-09-22 21:46:52 8675

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除