“不长叶儿的树”为你分享5篇“Expression Blend实例中文教程 控件快速入门ControlTempla”,经本站小编整理后发布,但愿对你的工作、学习、生活带来方便。
篇1:Expression Blend实例中文教程 控件快速入门ControlTempla
上篇,介绍了控件样式(Style)和模板(Template)的基础概念,并且演示了使用Blend设计控件样 式,本篇将继续介绍使用Blend设计自定义控件模板 - ControlTemplate。ControlTemplate可以称为控件 模板,简单的理解为控件结构和行为的集合。在项目设计中,经常会使用ControlTemplate创建新的控件 模板或者修改现成的控件模板,使用项目的UI具有独特性。如何使用Blend创建和修改ControlTemplate是 本文即将讨论的话题。
概述
对于ControlTemplate没有一个特定的概念,为了避免过于抽象,可以简单的理解ControlTemplate是 通过改变Style改变控件视觉效果的类。ControlTemplate可以被定义在控件的Xaml代码中,为了提高复用 性,ControlTemplate也会被定义到资源文件中。
实例
学习ControlTemplate最好的方法还是实践,下面,我将使用实例演示使用Blend创建新的控件 ControlTemplate。
首先,在Blend中创建新的项目ControlTemplateDemo,上周Silverlight 4发布,我已经升级开发环境 到Silverlight 4,VS和Blend 4 RC, 所以,以后所有项目演示将是基于.Net Framework 4的。
大家会发现Blend 4创建新项目和Blend 3没有太大区别。
我们计划创建一个简单的按钮ControlTemplate,
现在,从左边工具栏选中矩形框,在主设计窗口画一个矩形框,使用Radius修改矩形框边缘为圆形。 该矩形框是为了Button的模板控件做基础使用的。
然后修改矩形背景和边框颜色,这里大家可以按照自己的喜好和需求自行设置背景色和边框颜色。
然后在主设计窗口选中该矩形控件,点击鼠标右键,选中“Make Into Control...“选项,
这个选项是将当前控件转换到指定控件模板中,在以下弹出窗口中,可以选择需要转换的控件类型, 从以下窗口可以看出,矩形控件可以转换到所有控件模板中,下面Name是模板样式名称,Define in是创 建该资源模板到指定位置。这些和前文教程内容相同,不再赘述。
这里,我们使用默认的name,将模板信息放在本地文档资源中,因为我们演示创建按钮 controltemplate,所以在点击OK前,必须从上面的窗口中选择“Button”,点击OK后主设计窗口将显示 按钮样式。
到这里一个简单的ControlTemplate已经创建完了。我们打开Objects and Timeline看看当前控件模板 组成信息,从下图我们可以看到,该Button模板,是由一个矩形控件和ContentPresenter组成的。
再看看该按钮模板代码,从以下代码中可以看出,在资源中,定义了一个新的ControlTemplate,该控 件模板目标控件类型是Button(?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
这时,我们可以保存所有修改,点击“F5”运行当前项目。在运行后,可以在浏览器中看到一个 Button
但是该Button没有任何的视觉效果和Button事件。也就是说,在这个新的控件模板中,缺少VSM状态信 息。根据上一篇Blend控制VSM中可以得知,在Blend中的States菜单栏中,可以轻松的控制控件的VSM状态 ,下面,我们添加一些简单的状态效果。
首先,选中新创建的Button控件,然后打开左边菜单栏States,如果没有发现该Tab,可以在Blend的 Window菜单选中States就会出现了。
在按钮的Normal状态,就是我们初始化设置的状态,现在我们修改MouseOver的控件视觉效果.
在States中,选中MouseOver,然后在主设计窗口选中Button控件,
在右边Properties属性栏,简单的修改Button的背景色,
这样,鼠标覆盖到Button控件时,颜色会改变,再点击F5运行,可以将鼠标放在控件上,这时会发现 VSM会切换视觉状态。
按照以上方法,我们修改“Pressed”和”Disabled“状态。
Pressed:
Disabled:
在运行F5后,测试会发现VSM状态切换已经实现,但是缺乏体验效果,当鼠标放在Button时,我们希望 看到渐变效果,当鼠标点击Button后,也希望看到渐变效果,这里我们需要添加Transition过渡效果到各 个状态。
在States菜单下,选中Normal状态,
在状态右边,会看到有个箭头状按钮,点击添加Transition过渡效果,
点击Transition按钮后,会弹出一个过渡效果列表,这里表示从Normal状态过渡到不同的状态所呈现 的效果。
其中需要注意的是 “* -> Normal”,表示从任何效果到Normal,“Normal -> *”,表示从 Normal到任何效果。
这里,我们选中“Normal -> MouseOver”。
我们可以设置从Normal过渡到MouseOver要用什么动画效果呈现,过渡动画时间设置。
这里我们可以选择Easing效果,关于Easing的介绍,已经在过去的教程中详解,这里不再赘述。
设置过渡时间为0.3秒,点击F5,看看设置的效果,当鼠标放在Button后,会出现渐变的动画效果。
按照以上的方法,依次类推,
在MouseOver状态,添加Normal状态,
在Pressed状态,添加MouseOver状态,
再次运行项目,Button控件会在各种状态下出现不同的过渡动画效果。
这时再次查看模板代码,会发现在ControlTemplate中,出现了VisualStateManager选项。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
我们简单的添加一个Button点击事件,来测试新创建的Button控件,
选中Button控件,在右边Properties属性栏上面,点击Events
Blend会列出该控件所有的Events事件,这里我们选中Click,双击后,在主设计窗口会切换到后台代 码cs编辑界面. Blend自动创建Button控件Click事件方法,
我们在btDemo_Click中添加简单代码
1 private void btDemo_Click(object sender, System.Windows.RoutedEventArgs e)2 {3 // TODO: Add event handler implementation here.4 btDemo.Content = “我是测试按钮”;5 }
F5测试,点击Button,会发现控件文本标签内容被修改。也说明我们创建的ControlTemplate已经继承 了所有Button的功能。
至此,一个自定义ControlTemplate控件模板创建完毕。
如果您在开发设计过程中遇到问题,欢迎留言给我。
本文配套源码
篇2:Expression Blend实例中文教程 布局控件快速入门Canvas
上一篇,我介绍了Silverlight控件被分为三种类型,
第一类: Layout Controls(布局控件)
第二类: Item Controls (项目控件)
第三类: User Interaction Controls(用户交互控件)
在以上三种控件类型中,布局控件是最基础的,所以,我从布局控件开始一个快速入门介绍,根据前 文所述,我们知道Silverlight标准控件中,包括以下四种布局控件:
Grid控件
Canvas控件
StackPanel控件
Border控件
经过上一篇文章的学习,我们已经对Grid有了了解, 本文将继续介绍另外一个布局控件Canvas,
Canvas布局控件,相对于其他布局控件的优势在于可以自由的设定其包含区域内控件的位置。该控件 在Silverlight游戏设计中最为常见,可以实现游戏中独立部件控制。
使用Blend设置Canvas很简单,我在上一篇项目基础上,在0行0列和0行1列中分别创建两个Canvas,然 后在两个Canvas中创建两个控件。
选中Canvas后,可以在右边“Properties”属性栏中修改其属性,从属性栏中可以看出,Canvas是嵌 套在Grid中,所以,其位置可以由Grid属性控制。
选中Canvas中的控件,可以在右边“Properties”属性栏中看到该控件在容器Canvas中的位置,包括 左距离,顶距离,以及Z坐标值。
其中Left可以理解为X坐标值,Top为Y坐标值,ZIndex(Z坐标值),如果从3D的角度来理解,是相对 于平面的立体值。对于ZIndex 的使用,可以看看下例,如果有两个Canvas控件,位置坐标相同,会形成 覆盖,这里定义ZIndex,值越大的将会在上方覆盖ZIndex值小的控件。通过这个参数设置,我们可以实现 很多不同的布局效果。
从上图可以看到,Canvas中的子控件,属性栏中,没有Grid控件中的Margin属性,而是使用Left和Top 进行定位。根据微软官方的解释,Canvas中的控件,使用Canvas.left和Canvas.top定位,传递该数值到 父容器控件Canvas,重载父容器Canvas的 AttachedProperty(附加属性),这样意味着父容器Canvas不 能更改子控件的位置。这里引入了AttachedProperty(附加属性),该属性是属于父控件的属性,但是可 以被子控件进行设置。
上一篇,我们提到过布局控件Group的功能,这里使用Canvas group的功能,将多个Canvas嵌入到一个 Canvas控件中,通过父Canvas控件统一控制子容器控件的属性,
这里我创建四个Canvas,每个Canvas中包含一个圆形控件。当前,处于相互覆盖状态。
按着Shift,分别选中 四个Canvas控件,点击鼠标右键,“Group into” - > “Canvas“,
选中后,Blend将生 成新的Canvas父控件,将选中的四个Canvas控件,作为子控件。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
现在选中父控件的Canvas,将Opacity修改 为40,可以看到,所有子控件的Opacity统一修改为40.效果如下:
如果 ,我们分别设置父控件下的四个Canvas控件Opacity属性,即可看到各自Canvas将按照自己属性为主,效 果如下:
Canvas通过Group的 功能,可以实现多个控件实现相同方式下动画效果,在Silverlight开发中也是常用的功能。
Canvas布局控件快速入门就介绍到这儿了。
篇3:Expression Blend实例中文教程 项目控件和用户交互控件快速入门
前文我们曾经描述过,微软把Silverlight控件大致分为三类:
第一类: Layout Controls(布局控件)
第二类: Item Controls (项目控件)
第三类: User Interaction Controls(用户交互控件)
我们已经对第一类布局控件在Blend中的应用进行了描述,本文将介绍Item Controls,也称为项目控 件;和User Interaction Controls,也称为用户交互控件.
Item Controls (项目控件)
在实际项目中,我们经常会遇到处理数据集合或者数组的情况,而处理数据集合最好的方法就是使用 “Binding”绑定。正如您所知道的,在 ASP.NET中,就已经应用了“Binding”绑定的概念,其优势在于 节省了大量的开发时间,降低了开发难度。而在Silverlight中微软加强了Binding功能,并且使用Item Controls(项目控件)来显示和处理数据集合和数组类型数据。Silverlight提供了四种标准项目控件, 分别是 ListBox,ComboBox,TabControl和TreeView。 下面,我将演示在Blend中如何使用这些控件。
根据上文描述,使用Item Controls前,首先需要绑定数据,而绑定数据需要有相关数据源,所以,我 们需要先定义数据源。本文依旧使用前文例程 SilverlightBlendDemo,在Silverlight客户端创建一个新 的 Usercontrol,ItemControlsDemo.xaml.
创建完毕后,主设计窗口将呈现ItemControlsDemo的UI设计界面,看右边属性栏,有三个Tab,其中包 含“Data”,选中Data,
该窗口允许用户在Blend中定义数据源,导入XML格式数据,定义外部数据源等功能。
首先,我们选择“Define New Sample Data..“,定义一个新的例程数据源,名字使用默认 SampleDataSource。其中,Define in是指定该数据源的应用访问,默认为整个项目,当然,如果作为测 试,也可以指定该数据源仅应用于当前打开文档。这里,我们使用默认设置。
创建完成后,在右边Data数据栏中,会出现SampleDataSource选项,而在该数据源下包含一个集合 “Collection”,该集合默认有两个属性“Property1”和“Property2”。在项目应用中,可以根据需要 再添加新的属性。
由于我们添加的是例程数据源,Blend已经在该数据源中添加了例程数据,根据需求,我们可以对例程 数据进行修改。首先选择Collection,然后点击编辑例程数据,
可以看到,Blend生成的默认例程数据,这里我们可以进行简单修改,Property1默认类型String, Property2默认类型为Boolean,这里我想修改Property2为String,
类型修改为String,还可以修改该数据列的具体的格式:
为了方便演示我修改两个默认属性名,分别为,“网站”和“网址”
点击OK,例程数据建立完成,
下面,看看在Blend中如何使用Item Controls装载数据源。首先我们测试ListBox:
在左边工具栏,选择ListBox控件,然后在ItemControlsDemo.Xaml设计页面,画一个ListBox。
然后从右边Data栏中,选中Collection,拖拽到ListBox空白处,ListBox即可自动绑定例程数据。
Blend会自动生成XAML代码,对例程数据进行绑定。
1
2
3
4
5
6
7
8
9
10
11
这样就轻松实现了ListBox绑定例程数据。
再试试ComboBox,从左边工具框选择ComboBox,在设计页面画一个ComboxBox,
仍旧按照以上方法,拖拽Collection到ComboBox上,即可看到数据已经进行绑定。
同样,在Treeview中,也可以正常绑定。
在数据绑定的时候,Data栏目,会有黄色的框,表示“Data Binding”。
具体的定义,在Property属性栏中查看:
以上则是使用Blend对Item Controls进行数据绑定的方法。由于文本主要讲述Blend应用,这里,就不 再对Item Controls的属性进行赘述,如果您有问题可以留言给我。
User Interaction Controls(用户交互控件)
Silverlight控件中,User Interaction Controls是面向用户行为交互,该控件和ASP.NET和WPF中的 大部分交互控件相同,用法也基本相似。其选取和设计,和前文Item Controls相同,这里就不再赘述。 需要注意的是,不同的交互控件,具有不同的交互事件,从而达到不同的交互效果。在后文,如果有需要 ,我将详细解释说明。
本节源代码下载:http://silverlightchina.net/uploads/soft/100325/1- 100325132101.zip
篇4:Expression Blend实例中文教程样式和快速入门Style,Template
在上一篇,介绍了Visual State Manager视觉状态管理器,其中涉及到控件的样式(Style)和模板( Template),本篇将详细介绍样式(Style)和模板(Template)在Silverlight项目中的应用,并介绍如 何使用Blend设计样式(Style)和模板(Template),
在LOB(Line-of-Business)企业级应用项目开发中,为了使项目的视觉效果多样化,不仅仅使用动画 效果,而且经常还需要修改部分控件的样式(Style)和模板(Template)。 在Silverlight的控件包中 ,微软已经定义了默认控件样式和模板,开发人员可以在这些默认的代码上进行修改和调整,以达到项目 需求。但是由于默认的控件样式和模板代码过于冗长,手工修改起来相对复杂和繁琐,对此,微软封装了 一些新的功能在Blend中,方便开发人员和设计人员对模板和样式进行控制。 在学习Blend控制样式 (Style)和模板(Template)前,还是先快速了解一下样式(Style)和模板(Template)。
样式(Style),有HTML开发基础的朋友对传统的CSS样式表并不陌生,HTML将所有公用的属性代码汇 集到CSS文件中,使用CSS控制页面的背景,控制表格的宽度,控制控件距离等。Silverlight中的样式 (Style)和CSS相同,允许设计人员和开发人员将控件的公用属性定义到资源文件中,允许相同属性控件 自由调用,这样不仅提高了代码的复用性,而且保证了控件外观在项目中的一致性。
模板(Template),模板的概念在传统的Web页面开发中已经被引入,早期Dreamweaver因为支持创建 Web模板设计,吸引了不少Web开发者。Silverlight中同样引进了模板的概念。在Silverlight中,凡是继 承自System.Windows.Controls命名控件的控件都有一套默认的模板,设计人员和开发人员可以基于默认 模板的基础上进行修改,创建自定义模板。
样式(Style)和模板(Template)的定义
在Silverlight中,样式和模板定义是很简单的,因为很多属性已经被封装好,不需要自行创建,只需 要调用就可以了。简单的演示代码:
Style:
1
Template:
1
样式(Style)和模板(Template)的使用
在Silverlight中样式(Style)和模板(Template)都属于控件资源,也就是说,两者都可以被定义 在资源文件中,而在项目页面中,仅需使用Style和Template属性调用就可以了。
Style:
1
Template:这个方法,也是Blend所支持的方法,下面我们看看实例,进一步理解。
1
上面介绍了样式和模板的最基本的用法。在实际项目中,我们经常把模板(Template)定义在样式 (Style)中,也就是将Template作为一个属性被赋值在Style中,这样当样式(Style)被应用在控件中 时,新的模板也会同时加载。例如下面Button样式代码,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
下面我们用一个简单的实例来理解Style(样式)和Template(模板),
首先,我们创建一个新的项目StyleTemplateDemo作为演示。
打开MainPage,在主设计窗口中,添加三个按钮控件到该页面,
对于Button控件的样式属性控制,最简单的方法就是从右边Properties属性栏,
如果需要创建自定义样式,则需要按照以下步骤:
首先选中其中一个按钮控件,在左上角可以看到Button控件下拉菜单,
点击“[Button]”下拉菜单,选择“Edit Template”,然后选择“Edit a Copy”,
或者,可以在主设计窗口,使用鼠标右键选中控件,选择“Edit Template”,然后选择“Edit a Copy”,
选中“Edit a Copy”,系统会弹出提示窗口,询问“Create Style. Resource”是否创建样式资源,
其中Name(Key)是样式名,以后调用该样式将使用这个Name;
Define in 有三个选择:
1. Application(应用),该选项是将该样式代码添加到App.Xaml文件中;
2. This document(当前文档),该选项是将该样式代码添加到当前编辑文档中,当前我们编辑 MainPage.Xaml,如果选中此项,样式代码将被输出到该文件中;
3. Resource dictionary(资源目录),该选项是将该样式代码添加到自定义资源文件中,如果没有 资源文件,可以点击“New”创建自定义资源文件;
在This document(当前文档)中,该选项有两个选择,
“UserControl:
调用是使用前面的基础调用代码:
1
“Button:
对比以上三种定义样式代码方式,第一种和第三种方法相对来说比较灵活,将样式代码放在公共资源 文件中,方便其他页面相同属性控件调用;而第二种方法,仅供该文件中的相同属性控件调用。
这里我们Define in选择Application,定义样式代码到App.xaml中,点击确定后,系统会打开 App.xaml文件,进入控件样式编辑状态,这时就可以对控件样式进行编辑。
当前主设计窗口打开文件为”App.xaml“,因为该文件包含了要编辑的样式和模板代码。
在控件处于样式和模板编辑状态下,从Objects and Timeline窗口可以查看该控件模板的子部件,通 过修改包含的子部件样式,来改变原按钮控件样式。
例如我们想改变Button的背景色,可以修改BackgroundGradient属性,从上图的Objects and Timeline中选中BackgroundGradient,
在右边Properties属性栏,修改颜色,即可看到在主设计窗口按钮的背景色在改变。
保存以上修改后,回到主设计窗口,能看到两个Button已经被应用了新的Button样式,
1
2
3
4
5
从代码中可以看出,使用?Style=”{StaticResource?ButtonStyle1}“ 的按钮,已经将默认Button样式 替换为新的Button样式。如果想修改最后一个Button的样式,同样,把Style=”{StaticResource? ButtonStyle1}“ 属性添加到Button中即可。?在Blend中可以非常简单的应用新的样式到控件。
在需要被应用样式的Button控件上点击鼠标右键,然后选择“Edit Template”->“Apply Resource” ->选中当前需要被应用的样式,在主设计窗口即可看到控件样式的变化。
现在,我们切换左边的Objects and Timeline 到 States,当前选中的States是CommonStates组中的 Normal, 阅读过上一篇VSM教程的,相信对这里并不陌生,Normal表示Button控件的正常视图状态。
这里我们可以看到,在主设计窗口,Button样式仍旧是紫色
当我们选中MouseOver视图状态时,主设计窗口Button样式,变成默认的样式。这说明,每个Visual State视觉状态都有自己独立样式,和上一篇讲述的控件每个视图状态都有独立性是相符的。
所以,要修改完整的一套控件样式,需要以控件的视图状态为基础,修改每个会引起控件视图产生变 化的状态。这里,我们选中MouseOver后,切换Tab到 Objects and Timeline,
选中“BackgroundGradient”,修改Button控件在鼠标覆盖后的背景,
保存后,F5运行该例程,当鼠标放在Button上,自动会切换Button样式。
Normal状态:
MouseOver状态:
Pressed状态:
上图可以看出Pressed状态并没有改变,仍旧是默认样式。其样式修改方法与上面的方法相同,这里不 再重复,大家可以按照以上方法修改。
对于控件样式的的控制,基本已经讲完。在下一篇将介绍Template模板的应用实例。
篇5:Expression Blend实例中文教程
Expression Blend实例中文教程(5) - 布局控件快速入门StackPanel,ScrollViewer和Border
上一篇,介绍了Canvas布局控件在Blend中的使用,本篇继续介绍布局控件StackPanel,ScrollViewer 和Border。
相对于Grid和Canvas来说,StackPanel,ScrollViewer和Border是比较简单的布局控件,实现的功能相 对来说单一。
首先来说说StackPanel控件。从字面意思理解,是堆栈面板的意思。堆栈内的所有内容将按照顺序进 行排列,排列方式分水平排列和垂直排列两种方式。
对于StackPanel的使用,主要是对控件水平或者垂直排列,使用该控件排列控件,比Grid设置表格控 制要容易很多。
例如,在Grid中要设置Row和Column,然后将控件放置到各个Cell中,才能达到对齐布局的效果,而在 StackPanel中只要使用Orientation属性控制就可以了。
这里我们简单演示一下,在Blend中应用StackPanel
选中StackPanel后,在主窗口画一个StackPanel容器。
然后选择按钮控件,在StackPanel中,画一个高为30的按钮。然后选中该按钮,复制创建三个新按钮 ,在复制粘贴的时候,会发现,每次创建一个新按钮会在布局中自动向下排列。这点和Grid和Canvas不同 ,在Grid和Canvas中复制粘贴控件,将会自动覆盖上一个控件,需要用 ZIndex控制其位置。
选中StackPanel,查 看右边Properties属性栏,其中Layout中多了一个Orientation选项,默认为Vertical垂直排列。
点击展开下拉菜单, 可以看到Horizontal水平排列,选中后,以上四个按钮分布将自动以水平方式排列。
和Grid相同,StackPanel也支持Margin和Horizontal Alignment,Vertical Alignment属性, 这里我就不在赘述,详细大家可以看“布局快速入门Grid”
ScrollViewer控件,是从 WPF中移植来的,针对大内容控件的布局控件。由于该控件内仅能支持一个子控件,所以在多数情况下, ScrollViewer控件都会和Stackpanel,Canvas和Grid相互配合使用。如果遇到内容较长的子控件, ScrollViewer会生成滚动条,提供对内容的滚动支持。
创建一个ScrollViewer控件,会看到该控件右边自带滚动框,
我们将上例拖拽进新创建的ScrollViewer控件,Blend会提示按“Alt”将拖拽控件放入ScrollViewer ,
放置成功后,由于内容过长,ScrollViewer的滚动条自动激活,
对于ScrollViewer的滚动条,可以通 过Properties属性栏进行设置控制,可以禁用,隐藏,或者设置仅在需要时候自动显示。
HorizontalScrollBarVisibility和VerticalScrollBarVisibility属性:
Auto = 仅在需要时候自动显示滚动条
Disabled = 禁用滚动条
Hidden = 隐藏滚动条
Visible =显示滚动条
Border控件,是最简单的布局控件,也是最早期的一款Silverlight布局控件,该控件允许用户创建一 个带有边框的布局控件。使用Border控件唯一需要注意的是该控件内仅能支持一个子控件。
在Blend中,绘制Border控件同样很简单,
将上例中的 StackPanel拖拽进新创建的Border控件。
Blend会提示按着 “Alt”是将控件放置在Border中,否则将修改Margin进行重新布局。这里我们按着Alt,完成 拖拽。
Blend自动生成XAML 代码如下:
1
2
3
4
5
6
7
8
其中BorderBrush是边框颜色;
BorderThickness是边框的宽度;
修改以上两个属性,同样可以在右边的Properties属性 栏进行修改。
至此,Silverlight 的布局控件,我们已经介绍完了,笔者建议,在学习的过程中,还要配合实践,这样会达到熟练的效果。
★ vba心得体会
【Expression Blend实例中文教程 控件快速入门ControlTempla(精选5篇)】相关文章:
安卓实习心得感悟2023-08-22
flash课件下载2023-07-22
学习计算机技巧2023-07-22
flash教学课件2022-06-22
Listen Software解决方案 “How To” 系列2:存储过程数据库教程2023-08-07
浅谈编辑在经济类报纸中的职责2023-04-24
ppt学习感言2023-10-18
计算机二级考试Java语言程序设计考点:标识符2023-10-10
创建Excel常用文档菜单2022-10-01
ASP 3.0高级编程三2023-01-25