千家信息网

Expression Blend 3的新增功能Make Into Control是怎样的

发表于:2024-11-17 作者:千家信息网编辑
千家信息网最后更新 2024年11月17日,这篇文章给大家介绍Expression Blend 3的新增功能Make Into Control是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。微软又推出其"Flash杀
千家信息网最后更新 2024年11月17日Expression Blend 3的新增功能Make Into Control是怎样的

这篇文章给大家介绍Expression Blend 3的新增功能Make Into Control是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

微软又推出其"Flash杀手"的又一个新版本Silverlight 3。值得注意的是,不仅Silverlight 3中新增添了不少功能,而且Expression Blend 3较之于其前的版本也大大加强,一个又一个极酷的支持加入到其中。

由于目前的Silverlihgt尚处于快速发展阶段,而且目前Visual Studio还没有提供对于XAML标记语言的可视化支持,所以,Expression Blend的可视化编程支持几乎是我们必须掌握的。

下面我仅想介绍Expression Blend 3的一个新增功能-Make Into Control。借助于这项支持,你可以随心所欲绘制任何几何图形,然后把它转换成一个按钮,滑动条或者是一个下拉列表框控件。

【注意】操作试验的前提是,你必须事先安装Silverlight 3 Tools for Visual Studio SP1以及Microsoft Expression Blend 3(当然也可以使用试用版本)。

案例分析

首先,请启动Visual Studio 2008。然后,选择"文件"-"新建"-"项目"。在随后的"新建项目"对话框中,选择"Silverlight Application"模板,并命名项目名称为S3MakeIntoControl。请参考图1。

图1 创建Silverlight应用程序对话框

单击"确定"按钮,随后出现一个对话框,意思是选择Silverlight工程的宿主站点。请选择默认设置。

然后,导航到Silverlight工程,在文件MainPage.xaml上单击右键并选择"Open in Expression Blend..."。

于是,系统自动打开另一个软件Microsoft Expression Blend 3,并且在你面前呈现一个空的XAML页面。

注意到,在此页面的左边是Expression Blend程序的工具栏。请选择其中的Pencil图标(请参考图2)。

图2 从Expression Blend工具栏中选择铅笔图标

现在,你可以在MainPage.xaml页面中进行任意绘制。本例中,我绘制了一个丑陋的五角星形状。然后,选择上面的五角星形状,就可以把它转换成一个Silverlight控件。

选择五角星形状后,在其上单击右键并选择"Make Into Control"选项(请参考图3)。

图3 选择五角星后击右键选择"Make Into Control"选项

随后弹出一个确定要转换成指定控件的对话框(请参考图4)。

图4 确定控件类型对话框

为了简化起见,在上图对话框中选择"Button"控件类型,并输入键名为pentagonButton,***单击"OK"按钮退出对话框。现在,我们便有了一个Button控件了。感觉如何?

不忙,让我们继续进行一番修改。右单击刚刚创建的pentagonButton按钮,从随后的弹出菜单中选择"Edit Template"-"Edit Current",如图5所示。

图5 选择编辑新创建控件的模板

经上面的操作后,我们便可以通过States窗口(作为一个选项卡,与"Projects"靠在一起)来访问VisualStateManager了。

现在,单击"States"选项卡,然后在其中单击MouseOver状态。这将触发MouseOver事件的状态录制动作,如图6所示。

图6 触发新建控件的MouseOver事件的状态录制动作

此时,打开右边的"Properties"(属性)选项卡,设置按钮控件的填充色为另一个颜色,如图7所示。

图7 在新建控件的MouseOver事件录制状态填充新的颜色

现在,停止录制操作,保存刚才的工作(File-Save)。

此时转到xaml文件的标记状态下观察,你会发现有如下内容:

< UserControl.Resources> < Style x:Key="pentagonButton" TargetType="Button"> < Setter Property="Template"> < Setter.Value> < ControlTemplate TargetType="Button"> < Grid> < VisualStateManager.VisualStateGroups> < VisualStateGroup x:Name="FocusStates"> < VisualState x:Name="Focused"/> < VisualState x:Name="Unfocused"/> < /VisualStateGroup> < VisualStateGroup x:Name="CommonStates"> < VisualState x:Name="Normal"/> < VisualState x:Name="MouseOver"> < Storyboard> < ColorAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.0010000" Storyboard.TargetName="path" Storyboard.TargetProperty="(Shape.Fill).(GradientBrush.GradientStops)[1].(GradientStop.Color)"> < EasingColorKeyFrame KeyTime="00:00:00" Value="#FFF200FF"/> < /ColorAnimationUsingKeyFrames> < /Storyboard> < /VisualState> < VisualState x:Name="Pressed"/> < VisualState x:Name="Disabled"/> < /VisualStateGroup> < /VisualStateManager.VisualStateGroups> < Path x:Name="path" Stretch="Fill" Stroke="Black" UseLayoutRounding="False" Data="M73.611115,181.94444 C86.962151,170.29263 84.722221,180.84279 84.722221,154.16667 C84.722221,138.78079 86.111115,123.42919 86.111115,108.33334 C86.111115,86.345619 87.5,65.706612 87.5,44.444443 C110.16323,44.444443 126.76094,82.515137 130.55556,116.66666 C133.69991,144.96585 144.44444,166.29266 144.44444,197.22223 C121.78442,197.22223 102.99593,172.35312 81.944443,159.72223 C67.342331,150.96095 59.193172,141.79919 55.555557,123.61111 C54.629631,123.61111 53.703705,123.61111 52.777779,123.61111 C54.022728,116.14142 155.51205,39.511379 137.5,105.55556 C127.33724,142.81902 121.06282,167.95105 77.777779,183.33333"> < Path.Fill> < RadialGradientBrush GradientOrigin="0.577,0.504"> < GradientStop Color="Black" Offset="0"/> < GradientStop Color="#FF01FF01" Offset="1"/> < /RadialGradientBrush> < /Path.Fill> < /Path> < ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/> < /Grid> < /ControlTemplate> < /Setter.Value> < /Setter> < /Style> < /UserControl.Resources> < Grid x:Name="LayoutRoot"> < Button Height="153.778" HorizontalAlignment="Left" Margin="52.778,44.444,0,0" Style="{StaticResource pentagonButton}" VerticalAlignment="Top" Width="92.666" Click="Button_Click"/>

为了观察试验效果明显起见,在页面MainPage.xaml的下部添加一个TextBlock控件,并命名为txtMessage。

接下来,我们想转入到新创建的pentagonButton按钮控件的Click事件处理器函数中。为此,只需要双击如图8所示的事件名Click的右侧。

图8 待触发pentagonButton按钮控件的Click事件处理器

Blend即打开了后台代码编辑页面MainPage.xaml.cs。这种代码编辑功能也是Blend 3.0新增添的,而且支持语法智能感知提示,相当不错。在Click事件处理器函数代码中如下内容:

private void Button_Click(object sender, System.Windows.RoutedEventArgs e)  {  txbMessage.Text="Hello world!";  }

现在,请导航回到Visual Studio中,系统会提示你重新加载刚才的XAML文件。

***,请选择"生成"-"重新生成解决方案"。生成完毕后,在宿主Web工程的S3MakeIntoControlTestPage.aspx文件上单击右键并选择"在浏览器中查看"。

现在,你可以欣赏上面的杰作了-你会观察到如图9所示的界面。

图9 应用示例初始界面

此时,移动你手中的鼠标到五角星上(不要移动内部的白色部分),按钮的颜色将变成前面设置的另一种形式(我们使用了渐变色)。而当单击此按钮时,下面的提示行中也显示提示信息"Hello world!"(见图10)。

图10 单击五角星按钮出现相应的信息提示

关于Expression Blend 3的新增功能Make Into Control是怎样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

选择 控件 按钮 事件 对话框 对话 五角星 五角 功能 文件 状态 页面 如图 参考 提示 支持 内容 面的 代码 处理器 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 阿里云上数据库安全吗 怎么知道是否安装数据库 猎杀对决亚服连接服务器失败 cocos2dx服务器 网络安全方面的调查报告 授时中心服务器ip 无线网络安全实验总结 网络安全码是多少 软件数据库设计文档 长沙田志软件开发有限公司 如何提高数据库效率 软件开发项目管理概念 国家电网信息网络安全分区 软件开发2019年工作计划 文件服务器与共享文件夹区别 计算机网络技术发展三个阶段 四川一体化智慧医养软件开发 探途网络技术有限公司股票 数据库视图机制实验截图 人大网络安全工作责任制实施办法 政府网络安全战略 网络技术的快速发展英语 江湖网络技术开发有限公司 开展网络安全文明进校园活动方案 定制网络技术销售厂 医疗app软件开发哪家公司 网络技术包含设计 阿克苏软件开发优化价格 四川一体化智慧医养软件开发 佛山手机软件开发大概要多少钱
0