下面是小编收集整理的Expression Blend实例中文教程(共含10篇),供大家参考借鉴,欢迎大家分享。同时,但愿您也能像本文投稿人“酸咖啡”一样,积极向本站投稿分享好文章。
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 的布局控件,我们已经介绍完了,笔者建议,在学习的过程中,还要配合实践,这样会达到熟练的效果。
Expression Blend实例中文教程(11) - 视觉管理器快速入门Visual State Manager(VSM)
Visual State Manager,中文又称视觉状态管理器(简称为VSM),是Silverlight 2中引进的一个概念 ,通过使用VSM,开发人员和设计人员可以轻松的改变项目控件的视觉效果,在项目中VSM主要用于创建自 定义控件以及控件模板。为了能够打造个性绚丽的Silverlight项目,学习掌握VSM是非常必要的。本文将 介绍VSM的快速入门知识以及VSM在Blend中的使用方法。
在学习VSM前,首先,了解以下几个基本概念:
正如前文所说,VSM视觉管理器是用户控制项目控件的视觉效果,Silverlight在定义控件的时候,将 其外观效果独立封装,另外对控件逻辑部分也进行了独立封装,换句话说,当开发人员修改控件外观效果 的时候,不会影响到控件的逻辑部分。由此可见,Silverlight控件是由两个主要部分所组成,Parts(部 件)和 States Model(状态模块)。
1. Parts (部件),主要负责控件的外观显示。Silverlight的大部分控件都是由多个子控件组合而 成,而这些子控件部分就是Parts。注意,这里我们说是大部分控件都由子控件组合而成,并非所有控件 都有子控件部分,所以,也有可能控件没有Parts(部件)部分。在MSDN对于控件有详细的说明,具体控 件的组成需要查询MSDN。
这里我们看看下面的例子,我们使用ChildWindow作为解释例子:
在一个ChildWindow中,有6个Parts(部件),分别是
Chrome,子窗口框架
CloseButton, 子窗口头部的关闭按钮
ContentPresenter, 子窗口主要内容部分
ContentRoot, 是承载Chrome和CotentPresenter的容器
Overlay, 当子窗口打开的时候,覆盖在父窗口上的部件
Root, 父控件
从上面可以看出,一个ChildWindow是由6个子部件组成,而修改这6个Parts的外观样式,自然也就更 改了ChildWindow的外观显示状态,也就产生了不同的视觉效果。
2. Visual States Model(视觉状态模块),为了理解方便,可以细分为三部分来理解,Visual States(视觉状态),Visual State Groups(视觉状态组)和Visual Transitions(视觉过渡转换)
Visual States(视觉状态)是指控件在特定情况下的显示状态。简单的说就是控件在不同情况下显示 的效果。例如上文的ChildWindow,对于子窗口,只有两种Visual States(视觉状态),一种是显示子窗 口,另一种就是隐藏子窗口。所以,在MSDN中ChildWindow的VisualStates定义只有:
Closed,子窗口隐藏
Open,子窗口显示
再一个简单的控件,Button(按钮)控件的Visual States(视觉状态),Button按钮控件有6个Visual States状态,从下图可以看出这6个Visual States在不同的条件下,每个都有自己独特的显示方式。
Normal,正常状态;
MouseOver,鼠标在按钮上时,按钮显示状态;
Pressed,按钮按下的状态;
Disabled,按钮无效的状态;
Focusd,焦点在按钮上的状态,与Unforcused互斥;
Unfocused,焦点不在按钮上的状态,与Forcused互斥;
Visual State Groups(视觉状态组)是为有互斥效果的控件提供的功能.对于相同的Visual State Groups(视觉状态组),呈互斥状态;而对于不同的Visual State Groups(视觉状态组)是不做互斥状 态处理的。简单的理解,一个控件可以同时属于两个不同的Visual State Groups(视觉状态组)。 CheckBox是最具有有Visual State Groups(视觉状态组)特征的控件。
CheckBox具有四个Visual State Groups(视觉状态组),分别是CommonStates,CheckStates, FocusStates和ValidationStates。从上图可以看出,CheckBox的Normal状态和Checked状态,因为属于不 同的Visual State Groups(视觉状态组),所以可以同时并存。而CheckBox的Normal和Pressed状态属于 同一个Visual State Groups(视觉状态组),所以不能同时共存,仅有一个状态效果有效。
Visual Transitions(视觉过渡转换)可以简单理解为视觉状态切换时的过渡动画效果。从Windows Vista开始微软已经开始应用这种效果,这样使用户在使用控件时有更自然更人性化操作的感觉。最简单 的例子,
上面介绍的是在学习VSM前,需要掌握的基础知识,有利于理解下文。
Visual State Manager(VSM)视觉状态管理器
从字面意思可以理解,既然是视觉状态管理器,自然是管理Silverlight控件的Visual States Model (视觉状态模块)的。 在Silverlight中VSM以代码的方式控制Visual States,Visual States Group和 Visual Transitions。例如:
1
2
4
5
6
7
8
9
10
11
13
14
15
16
17
18
另外微软提供VisualStateManager类对控件视觉状态进行管理,只要使用GoToState即可切换视觉状态 ,
VisualStateManager.GoToState(myButton, “Disabled”, true);
但是从MSDN中,我们可以了解到,对于复杂的控件经常会有数十种视觉状态需要管理和维护,如果需 要创建一个自定义样式的控件,有时需要创建上百行的视觉管理代码。对此微软在Blend中提供Visual State管理面板,简化开发人员和设计人员在创建自定义控件时的工作量。在使用Blend设计视觉状态前, 我们需要结合过去的教程,理解一下当前的类的层次情况,请看下图:
从上图可以看出,VSM控制着视觉状态States,在视觉状态中,可以使用StoryBoard动画效果来表示特 定情况下的显示状态,而StoryBoard中,允许开发人员设置运行周期以及动画运行方式。下面我们结合实 例来理解。
首先我在Blend中创建一个新Project,VSMDemo,
在项目MainPage.xaml中,添加一个按钮控件,
在设计主窗口左上角,选择[Button] - >Edit Template - >Edit a Copy,编辑按钮的默认模 板,这里会将微软默认的按钮控件模板代码复制到你指定的位置,
选择编辑后,会弹出Create Style. Resource创建样式资源的窗口,对于样式和模板,我将在下一篇详 细讲解,这里暂不细述,请按照以下步骤继续操作,
不用修改任何信息,点击Ok后,在States控制面板中,就可以看到当前按钮的视觉状态管理列表。
如果在左边没有看到“States”菜单,可以进入上面的“Window”菜单,选中“States”即可显示。
在States管理面板中,我们可以看到Button当前有两个States,CommonStates和FocusStates,对于两 组中的视觉状态前文已经解释过,这里我们需要看看菜单细节。
如果选中“Turn on transition preview”菜单,设置的Transition动画将在主设计窗口自动播放, 我们设置为Turn on,打开状态,方便下面查看效果。
Base表示根视觉状态,在下面分为两个Visual States Group(视觉状态组),每个视觉状态组中包含 不同的Visual States(视觉状态)。点击每个视觉状态右边的箭头标识,可以添加“Visual Transitions(视觉过渡转换)”,从上图可看到,弹出的菜单,其中需要注意的是:
“* ->Normal” 是指任何States到Normal
“Normal ->*” 是指Normal到任何States
现在可以切换到“Objects and Timeline”,在“Template”下选中Grid,
在右边属性栏,修改按钮Transform属性,修改x,y到0.5
然后回到States控制面板,会看到Normal状态下,按钮控件会变小,选中MouseOver后,按钮控件尺寸 恢复正常。
Normal
MouseOver
这时,选中Normal或者MouseOver,会在主设计窗口看到按钮变化的动画。点击F5运行该项目,当鼠标 覆盖按钮的时候,按钮会自动变化尺寸。
这样我们就简单的修改了Button按钮控件的Visual States(视觉状态)。
对于VSM需要注意的是,VSM是以代码方式管理Visual States的类,而Blend States只是一个工具,协 助开发人员管理维护Visual States,最终生成代码,仍旧是VSM进行控制。
对于视觉管理器的快速入门暂时介绍到这里,我们将在实例篇中再详细介绍VSM,Blend States在实际 应用中的使用方法。
上篇,介绍了控件样式(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控件模板创建完毕。
如果您在开发设计过程中遇到问题,欢迎留言给我。
本文配套源码
上一篇,我介绍了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布局控件快速入门就介绍到这儿了。
在上一篇,介绍了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模板的应用实例。
在服务器上的操作
(1)以system用户、SYSDBA身份登录【SQLPlus Worksheet】,执行creategraduateuser.sql文件创建用户graduateuser,
(2)执行createtablegraduateinfo.sql文件创建数据表graduateuser.graduate_info。
(3)执行createtabledirectorinfo.sql文件创建数据表graduateuser.director_info。
(4)执行createtablemajorinfo.sql文件创建数据表graduateuser.major_info。
(5)执行createindexgraduate.sql文件创建数据表graduateuser. graduate_info的姓名字段的索引。
(6)执行createindexdirector.sql文件创建数据表graduateuser. director_info的姓名字段的索引。
(7)执行createviewgraduate.sql文件创建数据表graduateuser. graduate_info的视图。
(8)执行createviewdirector.sql文件创建数据表graduateuser. director_info的视图。
(9)执行createviewmajor.sql文件创建数据表graduateuser. major_info的视图。
在客户机上的操作
(1)在客户机上调用Oracle 9i客户机的【网络配置助手】(Net Configuration Assistant)配置一个能够连接数据库服务器的【本地网络服务名称】,笔者配置的名称为myoraclelink。这个名称是可以任意取的。
(2)在客户机的【控制面板】/【32位ODBC】中创建一个系统数据源名称,这个名称必须是graduateDB。当然如果读者要采用自己的名称,可以在VB程序的模块MODULE1中进行适当的修改。修改的代码如下。
DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
‘定义了名为ConnectString的无参数函数,连接数据库
Public Function ConnectString As String
ConnectString = “DSN=graduateDB;UID=graduateuser;PWD=12345678”
End Function
DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
在客户机上运行程序
(1)将配套光盘上的Graduate.exe文件任意复制到客户机上,执行该文件出现如图10.55所示界面,
(2)出现如图10.56所示的【添加专业信息】界面。
(3)成功添加专业信息后出现如图10.57所示的提示界面。
(4)按照同样的步骤依次添加专业信息数据,这样添加后的专业数据将用于研究生信息录入和导师信息录入窗体使用。
(5)出现如图10.58所示的【添加导师信息】界面。
(6)成功添加导师信息后出现如图10.59所示的界面。
(7)按照同样的步骤依次添加导师信息数据。
(8)出现如图10.60所示的界面。
(9)成功添加研究生信息后出现如图10.61所示界面,单击“确定”按钮。
(10)出现如图10.62所示的【修改研究生信息】界面。
(11)出现如图10.63所示的【查询研究生信息】界面。
(12)在图10.55所示的系统主界面的【菜单栏】选择【退出系统】选项将退出系统。
(13)其他操作读者可以自行学习,这里不再赘述。
前文我们曾经描述过,微软把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相同,这里就不再赘述。 需要注意的是,不同的交互控件,具有不同的交互事件,从而达到不同的交互效果。在后文,如果有需要 ,我将详细解释说明。
本节源代码下载:silverlightchina.net/uploads/soft/100325/1- 100325132101.zip
返璞归真,随着年龄的增长,越来越怀念童年的单纯,通过儿歌让我们找回童年,是一个非常好的方法,在这里就让我们来看看中文Flash儿歌大全的使用方法吧!
儿歌大全集成了市面上几乎所有的上千首儿歌,让你再也不用四处找儿歌了。独特的妈妈音乐模式。满足个性化需求。最小的音乐播放器软件。700多K的文件大小,几秒钟就可以下完,开始美妙儿歌 4、听完后儿歌不需要再下载,断线也可以听。
打开儿歌大全的安装向导
图(1)
程序安装中
图(2)
软件使用
打开儿歌大全的使用界面
图(3)
我们可以看到图中有几个按钮 分别是 后退 目录 前进 和退出
目录
图(4)
我们可以看到用英语字母顺序排列的目录
按歌曲名的开头字母查找(abc类)
图(5)
Xyz类
图(6)
播放(单击选择的儿歌)
图(7)鲁冰花
黑猫警长
图(8)
当收播完你可以单击“前进”播放下一首或单击“后退”播放上一首也可进入“目录”选择
总结
愿这款软件能拌你宝宝度过一个美好的童年,
打字效果也是一个比较老的的效果,没办法本人太笨,想来想去还是觉得用这个效果来熟悉AS3.0的字符串和文本是最好的,
在AS3.0中字符串和文本与AS2.0相比变化不是太大,在AS2.0入门教程中已对字符串和文本作了祥细介绍,这里就不再细说了。
创建文本框与以住有些不同,在AS3.0中创建文本格式如下:
var 文本名称:TextField = new TextField;
这样文本框就创建了,但在AS3.0中显示对象要用addChild()方法添加到显示列表中,才能在屏幕上看到它,因此就还得加上一句:
addChild(文本名称);
打字动画效果实例Flash as3教程,下面来看一个例子:创建一个文本,并让文本显示一些内容。
在帧动作中输入下面的代码:
var mytext: TextField = new TextField();
mytext.text = ”我已经创一个文本了“;
addChild(mytext);
测试影片,你会看到一个文本:”我已经创一个文本了“显示在屏幕上了。
文本框创建之后就可以设置其属性,调用其方法了。比如:appendText()方法,它将地在号中的字符串添加到文本的的结尾处,看下面的代码:
var mytext: TextField = new TextField();
mytext.width=300;
mytext.text = ”我已经创一个文本了“;
mytext.appendText(”,我又加了一些内容“);
addChild(mytext);
测试影片,看到的内容是:”我已经创一个文本了,我又加了一些内容“。你可真能干,你还能加些内容。这里我们加了一句:mytext.width=300;这设置了文本的宽度,以适应文本内容,使它能完全显示出来。
下面进入主题,实现打字效果:
新建flash文档,记住建AS3.0文档。
然后,导入一个打字声音素材(只有一声的那种,附件已提供)到库中,在库中右击声音元件,点“连接”(flash8,cs3)或“属性” (flash cs4),在“为ActionScript导出“前打钩,在”类“文本框中输入一个类名称,我的名称是:dzs,”确定“后会弹出一个对话框,再”确定 “。
下面打开帧动作面板写代码。
首先声明一个字符串对象,将要打出的文字包含进去:
var mystr:String = ”在新春佳节来临之际,祝中国教程网的朋友们,新春快乐,万事如意,牛年牛气冲天!";
然后,声明一个变量,存储字符串的字符数,备用:
var strcd:Number = mystr.length;
接下来创建文本框,设置宽度,位置和缩放:
var mytextbox:TextField = new TextField();
mytextbox.width = 300;
mytextbox.x=120;
mytextbox.y=100;
mytextbox.wordWrap = true;//文本框向下扩展
创建一个文本格式对象,设置文本的格式:
var strformat:TextFormat = new TextFormat();
strformat.bold = true;
strformat.color = 0xffff00;
strformat.size = 20;
将文本添加到显示列表:
addChild(mytextbox);
下面创建一个函数将字符串内容添加到文本上,并调用打字声音,因为我们后面会用Timer类实例来调用函数,所以在函数的事作参数,我们用 event:TimerEvent,字符串的charAt(i)方法可以提取字符串中的第i个字符,
文本框在有了内容后调用 setTextFormat()方法才会有作用,所以在这里才用它。
var i =0;
function xs(event:TimerEvent):void{
mytextbox.appendText(mystr.charAt(i));
i ;
mytextbox.setTextFormat(strformat);
新建一个dzs类,即我们导入的声音,它将继承Sound类的属性和方法。所以用play()播放它,这样每加一个字符就会出现一声打字声。
var sy:dzs = new dzs();
sy.play();
}
下面创建Timer类,设置每300毫秒调用一次xs函数,为文本添加一个字符,一共调用字符串的个数那么多次:
var jg:Timer = new Timer(300,strcd);
jg.addEventListener(TimerEvent.TIMER,xs);
jg.start();
测试影片,打字动画效果应该出来了。
目标:用UG建立篮球的三维模型
效果预览:建模步骤:第一步、建立直径为100mm的篮球球体,见图1,UG建模实例小教程-篮球
。图 1 篮球球体第二步、运用草图工具,建立如图2曲线,图 2 草图第三步、对上步建立的草图曲线进行拉伸,见图3.图 3 拉伸草图曲线第四步、运用镜像体工具对弧形片体进行复制,见图4。图 4 镜像效果第五步,运用相交曲线命令,得到篮球体上条纹的轮廓线,见图5。图 5 篮球条纹轮廓线第六步、运用管道工具,沿着上步建立的轮廓线,建立管道,见图6。图 6 轮廓体效果第七步、求差,并对凹槽进行倒圆角,最终效果见图7。图 7 最终效果★ 离婚答辩状实例
★ 有趣英语演讲实例
★ 民事起诉书实例