如何快速学习vb
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何快速学习vb相关的知识,希望对你有一定的参考价值。
学习vb的步骤 要掌握那些东西那里可以找到相关软件 或资料
如何学好VB序:不要老是想着谁“最有钱途”,这些都不是我们应当考虑的,我们要考虑的是怎样才能真正的精通VB。如果成为了VB的专家,应当很容易赚到钱的。VB程序员为什么工资低,不是VB不行,是因为大部份VB程序员不行,他们只懂得用控件,而没有什么编程的思想。而VB的初学都只会用控件和简单的API就说精通VB了,显然影响的整个VB在程序界的地位,这些人显然不能称为程序员的,只能相当于会使用VB了,就像会Word一样。如果VB程序员都懂的数据结构,UML等,就完全是另外一回事了。有认为VB功能弱,请注意:仙剑95版就是用VB4做的,还有DirectX SDK7中有个一很好玩的3D游戏,声音和动画都非常好,也是用VB写的。所以VB能做很多东西,只要你想去做。
(1)VB不只是数据库和报表。不要以为VB就是数据库和报表,这只是VB强大功能的一小部份。如果这此都搞不清,还是好好的看一下相关的书籍,比在这里问问题有用多了。我以前没有学过数据库,只是有些编程的思路,后来学数据库就非常容易了。我做报表一般用RichTextBox或是From来做,一般都能做的很好,也不用去考虑什么水晶报表了。
(2)不要迷信于API。API能做很多东西,但有些东西在VB里面的函数中就有,API只是VB对WindowsSDK的封装而已。如果想学好API,建议学习SDK。如果VB本身就能很好的支持这个功能,何必还要用API呢。
(3)不要什么都想着控件。如果做程序都想着第三方控件的话,代价是很高的,不仅程序大,安全性也低了很多。其实VB本身带的控件已经完全够用了。
(4)认认真真的把MSDN中关于VB的内容好好看一看,特别是函数和语句,很有用的。
(5)遇到问题不要直接来这里问,自己好好想一想,试着解决这个问题,这虽然在时间上慢了,可是在自身的提高上却有很大的帮助。
(6)没事的时候,多研究些语言上的东西,如数据结构和算法,不要老是想着什么花哨的东西。这对以后的提高非常有帮助。
如何学好VB程序设计
1,学习程序设计的基本要求
2,Vb的功能及特点
3,学习VB程序设计的方法
对学习者知识的要求:
首先,学习程序设计要具备一定的数学基础.计算机与数学有很大的联系,综观计算机历史,计算机的数学模型(图灵机,由Alan Turing提出)和体系结构(由John Von Neuman提出)等都是由数学家提出的,最早的计算机也是为数值计算而设计的.因此,要学习好计算机就要有一定的数学基础.不过对于初学者来说,在数学基础方面的要求并不是很高,从我个人的角度来看,有高中数学水平就差不多了.
如何学好VB程序设计
学习程序设计基本要求
对学习者知识的要求:
其次,学习程序设计要有一定的逻辑思维能力.逻辑思维需要长时间的锻炼,如果你觉得自己在逻辑思维能力上有不足,也没有关系,因为编写程序本身也是对逻辑思维的锻炼.初学程序设计应具备的逻辑基础可以从高中数学中学到.
如何学好VB程序设计
学习程序设计基本要求
熟悉Visual Basic操作环境与设计工具,能设计应用程序界面.
掌握,理解面向对象程序设计基本概念
掌握VB语言的基础知识,程序设计的方法,
能阅读一般难的程序;
能应用编写一些简单程序;
具有用Visual Basic开发Windows环境下应用程序的能力和阅读分析一般难度的VB程序的能力.
如何学好VB程序设计
VB程序设计的基本要求
Visual Basic 简介
Visual Basic 是Microsoft 公司开发的Windows 应用程序开发工具,Visual ——"可视化的",是一种开发图形户界面(GUI)的方法.使得非计算机专业的人也可以开发出专业的Windows软件.
Visual Basic继承了BASIC语言简单易学的优点,又增加了许多新的功能,它采用面向对象与事件驱动的程序设计思想,使编程变得更加方便,快捷.使用Visual Basic既可以开发个人或小组使用的小型工具,又可以开发多媒体软件,数据库应用程序,网络应用程序等大型软件.是国内外最流行的程序设计语言之一.
2,VB的功能及特点
英文Visual的意思是"视觉的","可视的Baisc"这个名字可能抽象了点,但实际上它却是最直观的编程方法,之所以叫做"可视",你只要看到VB的界面就会明白,实际上你无需编程,就可以完成许多步骤.
在VB中引入了控件的概念,在Windows中控件的身影无处不在,如按钮,文本框等,VB把这些控件模式化,并且每个控件都有若干属性用来控制控件的外观,工作方法,能够响应用户操作(事件).
这样你就可以象在画板上一样,随意点几下鼠标,一个按钮就完成了,这些在以前的编程语言下是要经过相当复杂的工作的.
何为可视
Visual Basic的特点
1. 具有面向对象的可视化设计工具
2. 事件驱动的编程机制
3. 结构化的程序设计语言
4. 提供了易学易用的应用程序集成开发环境
5.支持多种数据库系统的访问
6.高度可移植化的代码
7.VB6.0在开发环境上,网络功能等的大大增强
Visual Basic的特点
可视化设计: Visual Basic为用户提供大量的界面元素(在Visual Basic中称为控件对象),例如 "窗体","菜单","命令按钮","工具按钮","检查框"等等,用户只需要利用鼠标,键盘把这些控件对象拖动到适当的位置,设置它们的大小,形状,属性等,就可以设计出所需的应用程序界面.
Visual Basic的特点
事件驱动编程:Windows操作系统出现以来,图形化的用户界面和多任务多进程的应用程序要求程序设计不能是单一性的,在使用Visual Basic设计应用程序时,必须首先确定应用程序如何同用户进行交互.(例如发生鼠标单击,键盘输入等事件时,用户必须编写代码控制这些事件的响应方法)这就是所谓的事件驱动编程.
程序设计方法概述
1.初期的程序设计
高运行效率,少占用内存为目标
2.结构化程序设计
程序的可读性,可维护性为目标
程序=算法+数据结构+计算机语言+面向过程的程序设计方法
3.面向对象的程序设计(OOP)
降低程序的复杂性,提高软件的开法效率和改善工作界面为目标
程序=对象+消息+面向对象的程序设计
面向对象的程序设计具有如下的优点:
1.符合人们习惯的思维方法,便于分解大型的复杂多变的问题.由于对象对应于现实世界中的实体,因而可以很自然地按照现实世界中处理实体的方法来处理对象,软件开发者可以很方便地与问题提出者进行沟通和交流.
2.易于软件的维护和功能的增减.对象的封装性及对象之间的松散组合,都给软件的修改和维护带来了方便.
3.可重用性好.重复使用一个类(类是对象的定义,对象是类的实例化),可以比较方便地构造出软件系统,加上继承的方式,极大地提高了软件开发的效率.
4.与可视化技术相结合,改善了工作界面.随着基于图形界面操作系统的流行,面向对象的程序设计方法也将深入人心.它与可视化技术相结合,使人机界面进入GUI时代.
(1)养成良好的学习习惯
VB程序设计的入门学习并不难,但却是一个十分重要的过程,因为程序设计思想就在这时形成的,良好的程序设计习惯也在这个阶段养成.
(2)学习程序设计要注重理解一些重要的概念.
VB程序设计本身并不复杂,翻开一本程序设计学习的书籍,看到的无非就是变量,函数,条件语句,循环语句等概念.但要真正能进行程序设计,需要深入理解这些概念.因此,在程序入门阶段还是应该重视概念的学习.
3,学习VB程序设计的方法
(3)自己动手编写程序
程序设计入门阶段要经常自己动手编写程序,亲自动手进行程序设计是创造性思维应用的体现,是培养逻辑思维的好方法.因此一定要多动手编写程序,而且要从小程序开发开始,逐渐提高开发程序的规模.
(4)阅读,借签别人设计的好程序
多看别人设计好的程序代码,包括教材上的例题程序.在读懂别人程序后,要想他为什么这么设计 能不能将程序修改完成更多的功能 则可以学到别人优秀的东西,帮助自己提高自身水平.
3,学习VB程序设计的方法
(5) VB程序设计学习的重点
重点放在思路,算法,编程构思和程序实现上.
语句只是表达工具,要求堂上积极思考,尽量当堂学懂,并做到灵活应用.
学会利用计算机编程手段分析问题和解决问题.
(6)养成良好的编程习惯
强调可读性;变量要加注释;
程序构思要有说明;
学会如何调试程序;
对运行结果要做正确与否的分析.
3,学习VB程序设计的方法
学好VB程序设计的具体要求:
(1)课前预习,认真听课并作适当做笔记,课后要认真复习消化所学内容,完成作业.
(2)多写程序,注重实践
程序设计课是高强度的脑力劳动,不是听会的,也不是看会的,而是练会的.
只有自己动手,编写一些程序,才会有成就感,进而对课程产生兴趣,学起来才比较从容.只有当你在编写大量程序之后,才能获得真知灼见,感到运用自如.
动手能力的培养是这门课和以往课程最大的不同之处.
3,学习VB程序设计的方法
(3)上机调试程序应注意的几点:
上机前应认真把实验题在用纸上做一做(包括窗体界面设计,事件代码的编写等)
每次上机后应总结,把没有搞清楚的问题记录下来,请教老师或同学.
平时应多抽课余时间多上机调试程序.注意系统的提示信息,遇到问题多问几开为什么.
3,学习VB程序设计的方法
(4)保持良好的学习心态
要有自信,自强,积极主动学习.
克服畏难情绪,树立学好程序设计的信心.
VB重点和难点(文档下载):
http://www.learn-qdtvu.com/media_file/2004_12_03/20041203105249.doc 参考技术A 21天速成vb大虾,你信么?不管学什么都要循序渐进的,买本vb基础教程看吧(2个月内能看完),看完以后学习下网上别人写的小程序源码,推荐本书《零基础学Visual
Basic》 参考技术B 不见一学习VB,除非你只想玩玩
VB的许多编程思想已经落后,缺少了结构化设计理念,对真正的程序设计没有非常大的帮助。 参考技术C 看书
Win2D 入门教程 VB 中文版
继续填坑!又一个c#教程变为vb!
这是我翻译的Win2D教程,链接保留了微软原版的。
如果文档有问题,可以在 https://github.com/Nukepayload2/Win2dDocVB发 Issue,也可以直接回复。
快速开始 |
本快速入门教程介绍了一些 Win2D 的基本功能。您将学习如何:
- 将 Win2D 添加到 XAML VB Windows 10 项目
- 绘制文本和几何
- 应用滤镜效果
- 对您的 Win2D 内容进行动画处理
- 按照 Win2D 的最佳做法
安装 Visual Studio
- 如果你没有安装 Visual Studio 的支持的版本,请按照此处的步骤:获取设置.
使用 Win2D 创建一个新的项目
- 1. 启动 Visual Studio 中,并创建一个新的项目:文件 → 新项目.
- 2. 如果你针对 Windows 10,选择安装 → 模板 → Visual Basic Windows 通用 → 空白应用程序 (通用 Windows).
- 3. 为该项目名称,选择一个位置,并创建它。
- 4. Win2D 释放作为一个 Nuget.org 包,需要安装之前您可以使用它。有两个包版本,本教程使用 Windows 10。通过工具 → NuGet 程序包管理器 → 管理 NuGet 程序包的解决方案去启动 NuGet 程序包管理器.
- 5. 搜索"Win2D"并选择相应的包为 Windows 10 的目标版本。
选择Win2D.uwp.
最后,单击安装。如果系统提示您若要查看更改,单击确定。如果你介绍与 Win2D 许可条款,请单击我接受.
Win2D 现在已安装在您的项目。
向您的应用程序 XAML 添加 Win2D CanvasControl
- 1. 为了使用 Win2D,您需要绘制图形的地方。在 XAML 应用程序,这样做的最简单方法是CanvasControl添加到 XAML 页面。
Win2D 在 c++ 中实现,因此使用 Win2D 的项目需要指向一个特定的 CPU 体系结构。
- 2. 导航到MainPage.xaml您的项目中通过在解决方案资源管理器中双击它。这将打开该文件。为方便起见,您可以双击XAML按钮在设计器选项卡这将隐藏可视设计器中,并保留所有的空间的代码视图。
- 3. 你添加的控件之前,你首先要告诉 XAML CanvasControl定义的位置。要做到这一点,转到的页面元素,定义并添加此语句: xmlns:canvas="using:Xaml"。您的 XAML 现在应该像这样:副本
- 4. 现在,将新的画布: CanvasControl作为子元素添加到根网格元素。为该控件指定一个名称,例如"画布"。您的 XAML 现在应该像这样:副本
- 5. 接下来,定义绘制事件的事件处理程序。CanvasControl提出了绘制每当您的应用程序需要绘制或重新绘制其内容。最简单的方法是让视觉工作室自动完成协助你。在CanvasControl定义中,开始键入一个新的属性绘制事件处理程序:副本
<Page
...
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:canvas="using:Xaml"
mc:Ignorable="d">
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<canvas:CanvasControl x:Name="canvas"/>
</Grid>
<canvas:CanvasControl x:Name="canvas" Draw="canvas_Draw" />
一旦您输入了在绘制 =",Visual Studio 应该弹出一个框提示您让它自动填写正确的定义事件处理程序。按TAB可接受 Visual Studio 默认事件处理程序。这将也自动格式正确的事件处理程序方法在代码中添加背后 (MainPage.xaml.vb)。不要担心,如果你没有使用自动完成在下一步中,您可以手动添加事件处理程序方法。
在 Win2D 中绘制你第一次的文本
- 1. 现在,让我们去后面的 VB 代码。从解决方案资源管理器打开MainPage.xaml.vb.
- 2. 顶部的 VB 文件是不同的命名空间定义。添加以下命名空间:副本
Imports Microsoft.Graphics.Canvas
Imports Microsoft.Graphics.Canvas.Effects
Imports Microsoft.Graphics.Canvas.UI
Imports Microsoft.Graphics.Canvas.UI.Xaml
Imports Windows.UI
接下来,您应该看到下面的空事件处理程序被插入的自动完成:
Private Sub canvas_Draw(sender As CanvasControl, args As CanvasDrawEventArgs)
End Sub
- 1. (如果你没有使用自动完成上一步中,添加此代码现在)。
- 2. CanvasDrawEventArgs参数公开一名成员, DrawingSession,这是CanvasDrawingSession类型。此类提供最基本的绘图功能,在 Win2D: 它具有的方法如CanvasDrawingSession. DrawRectangle, CanvasDrawingSession. DrawImage和你需要绘制文本的方法CanvasDrawingSession. DrawText.
将下面的代码添加到canvas_Draw方法:
args.DrawingSession.DrawText("Hello, World!", 100, 100, Colors.Black)
第一个参数,"你好,世界!",是你想要 Win2D 要显示的字符串。两个"100"s 告诉 Win2D 来抵消此文本由 100 蘸 (独立于设备的像素) 向右和向下。最后,"Colors.Black"定义了文本的颜色。
- 3. 你现在准备好运行您第一次的 Win2D 应用程序按F5键编译并启动。您应该看到一个空窗口与"你好,世界!"在黑色。
- 1. 在继续之前上绘制其他种类的内容,你首先应该添加一些代码来确保您的应用程序可以避免内存泄漏。大多数的 Win2D 应用程序写在.NET 语言和使用 Win2D 控制像CanvasControl需要遵循以下步骤。严格说来,你简单的"Hello,world"应用程序不受影响,但这是一个好的习惯,一般遵循。
正确处置 Win2D 资源
有关详细信息,请参阅避免内存泄漏.
- 2. 打开MainPage.xaml,找到包含您的CanvasControl的页XAML 元素。它应该是在该文件中的第一个元素。
- 3. 添加卸载事件的处理程序。你的 XAML 应该如下所示:副本
- 4. 去MainPage.xaml.vb,找到Page_Unloaded事件处理程序。添加以下代码:副本
<Page
...
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:canvas="using:Xaml"
mc:Ignorable="d"
Unloaded="Page_Unloaded">
Sub Page_Unloaded(sender As Object, e As RoutedEventArgs)
Me.canvas.RemoveFromVisualTree()
Me.canvas = Nothing
End Sub
- 1. 如果您的应用程序包含多个 Win2D 控件,然后你需要为每个包含一个 Win2D 控件的 XAML 页重复上述步骤。您的应用程序,目前仅有单一的CanvasControl所以你所有的事情。
- 1. 它是一样容易将二维几何添加到您的应用程序添加下面的代码到canvas_Draw的末尾: 副本
画一些图形
args.DrawingSession.DrawCircle(125, 125, 100, Colors.Green)
args.DrawingSession.DrawLine(0, 0, 50, 200, Colors.Red)
这两种方法的参数是类似于DrawText。一圈是由中心点 (125、 125),半径 (100) 和一种颜色 (绿色) 定义的。一条线是由 (0,0) 的开始、 结束 (50、 200) 和一种颜色 (红色定义的。).
- 2. 现在,按f5 键运行应用程序。您应该看到"你好,世界!"以及一个绿色的圆和红线。
你可能想知道如何控制更先进的绘图选项,如线条的粗细和短划线,或更复杂的填充选项,如使用画笔。Win2D 提供的所有这些选项和更多,和容易地使用它们的时候你想要。所有的画 [......]的方法提供许多重载方法可以接受额外的参数,如CanvasTextFormat (字体、 大小等) 和CanvasStrokeStyle (短划线、 圆点、 末端等)。感到自由探索 API 表面,以了解有关这些选项的详细信息。
动态生成的绘图参数
- 1. 现在,让我们添加一些品种通过绘制一束的形状和文本与随机颜色。
将下面的代码添加到您的主页类的顶部。这是生成的随机值,绘制时将使用的帮助器功能:
Dim rnd As New Random
Private Function RndPosition() As Vector2
Dim x = rnd.NextDouble() * 500.0F
Dim y = rnd.NextDouble() * 500.0F
Return New Vector2(x, y)
End Function
Private Function RndRadius() As Single
Return rnd.NextDouble() * 150.0F
End Function
Private Function RndByte() As Byte
Return rnd.Next(256)
End Function
- 1. 修改您的canvas_Draw方法来使用这些随机参数绘制:副本
Private Sub canvas_Draw(sender As CanvasControl, args As CanvasDrawEventArgs)
args.DrawingSession.DrawText("Hello, World!", RndPosition(), Color.FromArgb(255, RndByte(), RndByte(), RndByte()))
args.DrawingSession.DrawCircle(RndPosition(), RndRadius(), Color.FromArgb(255, RndByte(), RndByte(), RndByte()))
args.DrawingSession.DrawLine(RndPosition(), RndPosition(), Color.FromArgb(255, RndByte(), RndByte(), RndByte()))
End Sub
让我们打破DrawText有怎样的变化。"你好,世界!"仍然和以前一样。X 和 y 偏移量的参数已经被取代单一的System.Numerics.Vector2是由RndPosition产生。最后,而不是使用预定义的颜色, Color.FromArgb允许您定义一种颜色使用 A、 R、 G 和 B 值。A 是 alpha 通道或不透明度级别在这种情况下,你总是想要完全不透明 (255).
画圆和DrawLine同样经营往返DrawText.
- 2. 最后,将您的绘图代码包装在for循环。你应该会得到下面的canvas_Draw代码:副本
For i = 0 To 99
args.DrawingSession.DrawText("Hello, World!", RndPosition(), Color.FromArgb(255, RndByte(), RndByte(), RndByte()))
args.DrawingSession.DrawCircle(RndPosition(), RndRadius(), Color.FromArgb(255, RndByte(), RndByte(), RndByte()))
args.DrawingSession.DrawLine(RndPosition(), RndPosition(), Color.FromArgb(255, RndByte(), RndByte(), RndByte()))
Next
再次运行该应用程序。您应该看到一大堆的文本、 线条和圆圈与随机位置和大小。
将图像效果应用到您的内容
- 1. 图像效果,也称为滤镜效果,是应用于像素数据的图形转换。饱和度、 色相旋转和高斯模糊是一些常见的图像效果。图像效果可以链接在一起,生产精致的视觉外观为最小的努力。
通过提供一个源图像 (你开始使用的内容)、 创建效果如GaussianBlurEffect,设置属性,如BlurAmount,然后绘制效果的输出与DrawImage使用图像效果.
要应用到您的文本和形状的图像效果,您需要首先将该内容呈现到CanvasCommandList。此对象是用作输入到你的效果。
- 2. 更改您的canvas_Draw方法来使用下面的代码:副本
Dim cl As New CanvasCommandList(sender)
Using clds = cl.CreateDrawingSession()
For i = 0 To 99
clds.DrawText("Hello, World!", RndPosition(), Color.FromArgb(255, RndByte(), RndByte(), RndByte()))
clds.DrawCircle(RndPosition(), RndRadius(), Color.FromArgb(255, RndByte(), RndByte(), RndByte()))
clds.DrawLine(RndPosition(), RndPosition(), Color.FromArgb(255, RndByte(), RndByte(), RndByte()))
Next
End Using
就像如何从CanvasDrawEventArgs您可以绘制与获得的CanvasDrawingSession,你可以从CanvasCommandList创建的CanvasDrawingSession。唯一的区别是,当你画到命令列表绘图会话 (clds),你不直接渲染到CanvasControl。相反,命令列表是渲染的一个中间对象来存储供以后使用的结果。
你可能已经注意到包装命令列表绘图会话使用的块。绘图会话实现idisposable 可以根据和必须释放时,你做的渲染 ( using块这样做)。对你,但你必须处置您显式创建的任何绘图会话被闭合的你自动获取从CanvasDrawEventArgs CanvasDrawingSession.
- 3. 最后,定义GaussianBlurEffect通过向canvas_Draw方法的末尾,添加以下代码:副本
Dim blur As New GaussianBlurEffect
blur.Source = cl
blur.BlurAmount = 10.0F
args.DrawingSession.DrawImage(blur)
此代码创建一个高斯模糊,设置其源,你只是提请, CanvasCommandList将其模糊半径设置为10,以及最后呈现的输出到原始绘图会话模糊 (参数。DrawingSession).
- 4. 再次运行该应用程序。您应该看到你的线条、 文本和出现模糊的圆。
- 1. Win2D 使您能够更新和实时,您的内容进行动画处理,例如可通过改变每一帧与高斯模糊的模糊半径。要做到这一点,您将使用CanvasAnimatedControl.
对您的应用程序与 CanvasAnimatedControl 进行动画处理
CanvasControl是最适合主要是静态图形内容 — — 它只绘制时引发事件您的内容需要更新或重新绘制。如果你有不断变化的内容然后你应该考虑改用CanvasAnimatedControl。这两个控件操作非常类似,除了CanvasAnimatedControl引发绘制事件定期默认情况下,它被称为每秒 60 次。
- 2. 若要切换到CanvasAnimatedControl,请转到MainPage.xaml,删除CanvasControl线,并替换下面的 XAML:副本
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<canvas:CanvasAnimatedControl x:Name="canvas" Draw="canvas_DrawAnimated" CreateResources="canvas_CreateResources"/>
</Grid>
就像CanvasControl,让自动完成创建为你绘制事件处理程序。默认情况下,Visual Studio 将名称此处理程序canvas_Draw_1因为canvas_Draw已存在在这里,我们已经重命名方法canvas_AnimatedDraw要弄清楚,这是一个不同的事件。
此外,您也正在处理一个新的事件, CreateResources。再次,让自动完成创建处理程序。
现在,您的应用程序将在每秒 60 帧重绘,是更有效地创建您的 Win2D 视觉资源一次并重新使用它们的每一帧。它是低效创建的CanvasCommandList和 300 元素引入 60 次每秒当内容仍然是静态的。CreateResources是只有 Win2D 确定您需要重新创建您视觉资源,例如当加载页面时,将触发一个事件。
- 3. 切换到MainPage.xaml.vb。找到你的canvas_Draw方法,应该看起来像这样:副本
Private Sub canvas_Draw(sender As CanvasControl, args As CanvasDrawEventArgs)
Dim cl = New CanvasCommandList(sender)
Using clds = cl.CreateDrawingSession()
For i = 0 To 99
clds.DrawText("Hello, World!", RndPosition(), Color.FromArgb(255, RndByte(), RndByte(), RndByte()))
clds.DrawCircle(RndPosition(), RndRadius(), Color.FromArgb(255, RndByte(), RndByte(), RndByte()))
clds.DrawLine(RndPosition(), RndPosition(), Color.FromArgb(255, RndByte(), RndByte(), RndByte()))
Next
End Using
Dim blur = New GaussianBlurEffect()
blur.Source = cl
blur.BlurAmount = 10.0F
args.DrawingSession.DrawImage(blur)
End Sub
绝大多数的此现有的绘制代码不需要执行与每一帧: 包含文本、 线条和圆圈的命令列表保持不变,每一帧,和唯一的变化是模糊半径。因此,你可以将这个"静态"的代码移动到CreateResources.
做到这一点,首先剪切 (CTRL + X) canvas_Draw,除了最后一行的全部内容 (参数。DrawingSession.DrawImage(blur))。你现在可以删除剩余的canvas_Draw,因为它不再需要: 记得CanvasAnimatedControl有其自己独特绘制事件。
- 4. 找到自动生成的canvas_CreateResources的方法:副本
Private Sub canvas_CreateResources(sender As CanvasAnimatedControl, args As CanvasCreateResourcesEventArgs)
End Sub
- 5. (CTRL + V) 你原先被削减的代码粘贴到此方法。接下来,移动宣言 》 的GaussianBlurEffect方法体的外部,所以该变量成为主页类的一个成员。现在,您的代码应该类似于以下内容:副本
Dim blur As GaussianBlurEffect
Private Sub canvas_CreateResources(sender As CanvasAnimatedControl, args As CanvasCreateResourcesEventArgs)
Dim cl = New CanvasCommandList(sender)
Using clds = cl.CreateDrawingSession()
For i = 0 To 99
clds.DrawText("Hello, World!", RndPosition(), Color.FromArgb(255, RndByte(), RndByte(), RndByte()))
clds.DrawCircle(RndPosition(), RndRadius(), Color.FromArgb(255, RndByte(), RndByte(), RndByte()))
clds.DrawLine(RndPosition(), RndPosition(), Color.FromArgb(255, RndByte(), RndByte(), RndByte()))
Next
End Using
Dim blur = New GaussianBlurEffect() With {.Source = cl, .BlurAmount = 10.0F}
End Sub
- 6. 现在您可以创建动画的高斯模糊。查找canvas_AnimatedDraw方法并添加下面的代码:副本
Private Sub canvas_AnimatedDraw(sender As ICanvasAnimatedControl, args As CanvasAnimatedDrawEventArgs)
Dim radius = (1 + Math.Sin(args.Timing.TotalTime.TotalSeconds)) * 10.0F
blur.BlurAmount = radius
args.DrawingSession.DrawImage(blur)
End Sub
这读取由CanvasAnimatedDrawEventArgs提供的总运行时间并使用这来计算所需的模糊程度正弦函数提供了有趣的变化,随着时间的推移。最后, GaussianBlurEffect被呈现。
- 7. 运行应用程序看到随着时间的推移,模糊的含量变化。
祝贺您完成这个快速开始教程
以上是关于如何快速学习vb的主要内容,如果未能解决你的问题,请参考以下文章