欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

WP7学习笔记(二)

程序员文章站 2022-04-30 20:14:06
  一、blend工具简介: —一款专业设计工具,制作基于microsoft silverlight的应用程序的精美复杂用户界面 —让设计人员集中精力从事创...

 

一、blend工具简介:

—一款专业设计工具,制作基于microsoft silverlight的应用程序的精美复杂用户界面

—让设计人员集中精力从事创作,开发人员集中精力从事工作。每个团队成员都可以单独进行工作而不会妨碍其

 

他成员的进度

—可以在绘图板上绘制形状、路径和控件,修改其外观和行为,可以导入图像。视频和声音

—可以创建用于动态显示设计的可视元素或音频元素的storyboard并可以选择在用户与应用程序进行交互时触发这些

 

storyboard

—可重新设计应用于基本控件的模板,使应用程序具有独特的外观和行为

二、工作区

包括:工具箱、资源库、projects面板assets面板、states面板、properties面板、resources面板、results面板

1、工具箱:选择工具、直接选择工具、平移工具、视图工具、取色器工具,颜色填充工具、渐变工具(gradient、

 

brushtransform)、路径工具(pen,pencil)、形状工具(rectangle、ellipse、line)、版式面板(grid、

 

canvas、stackpanel、scrollviewer、border)文本工具(textblock、textbox、password)、常用控件

 

(button、checkbox等)

2、动画:

—动画基于定义平滑可视过度的起点和终点的关键帧

—创建一个storyboard,然后在该storyboard中的时间线上设置关键帧,以标记属性更改

—创建、修改后删除storyboard

—打开或关闭storyboard

—修改storyboard以在其周期结束时重复后反转

—复制或反转storyboard

—生成关键帧

—粘贴或移动关键帧

—删除关键帧

—更改关键帧之间的动画内插方式

—放大或缩小时间线

—推移时间线

—测试storyboard

—动态显示路径后剪切路径上的点

—运行storyboard时进行控制

—创建简单动画

—创建、修改或删除运动路径

—设置循环周期

3、资源

—几乎任何内容均可以转换为某种类型的资源

—创建资源

—应用或删除资源

—修改资源

—重命名资源

—移动、复制或导出资源

—创建、导出或导入资源字典

 

二、visualstate manager(视觉状态管理器)

—控制项目控件的视觉效果

—管理带有状态的控件的状态以及用于状态过度的逻辑

—涉及到控件在各个状态下的视觉效果,可以使控件产生很多特殊效果

—在项目中主要用于创建自定义控件以及控件模板

1、基本知识

1)silverlight控件包含两个主要部分

  —parts:控件的外观显示,大部分控件都是由多个子控件组合而成,这些子控件就是parts,并非所有控件都有子

 

控件部分

—states model

    —visual states(视觉状态):控件在不同状态下显示的效果

    —visual state groups(视觉状态组):为有互斥效果的控件提供的,相同的视觉状态组是互斥的,不同的视觉

 

状态组是不互斥的

    —visual transitions(视觉过渡转换):视觉状态切换时的过渡动画效果

 

三、window phone task开发

—基本知识:

1)没有提供直接操作sms、phone、email、camera等的api

2)通过task来调用的相关应用来拨打电话、发送短信、保存联系人、拍照等

3)当task启动后,自己的应用程序就会被终止

4)通过tombstone机制再次唤起自己的程序,并需要维护相关的状态

—phonetask

1)在应用中,打开拨号界面

2)可以直接拨打电话,并可以设置所拨打电话的联系人姓名

   代码:phonecalltask phonecall=new phonecalltask();

            phonecall.displayname="";

            phonecall.phonenumber="";

            phonecall.show();

—sms task

1)打开系统sms程序,并设置所要发的短信内容和发送人

2)可以发送彩信,但是只能发图片和摄像头拍照

代码:smscomposetask sms=new smacomposetask();

          sms.body="test sms";

          sms.to="15554117265";

          sms.show();

—savephonenumbertask

1)调用联系人程序,将电话号码保存到选中的联系人或新建联系人

代码:   savephonenumbertask savetask = new savephonenumbertask();

            savetask.phonenumber = "15554117265";

            savetask.show();

—phonenumberchooser task

可以打开联系人界面,选取一个联系人的电话号码

代码:private void chooserbtn_click(object sender, routedeventargs e)

        {

            phonenumberchoosertask choosertask = new phonenumberchoosertask();

            choosertask.completed += new eventhandler<phonenumberresult>(choosertask_completed);

            choosertask.show();

        }

 

        void choosertask_completed(object sender, phonenumberresult e)

        {

            this.pagetitle.text=e.phonenumber;

        }

—email task

调用系统邮件程序发送邮件

代码:  emailcomposetask emailtask = new emailcomposetask();

            emailtask.body = "test my wp's email";

            emailtask.subject = "生日快乐";

            emailtask.to = "92029348@qq.com";

            emailtask.cc ="yja886@163.com";

            emailtask.show();

—emailaddresschoosertask

打开联系人程序,选取联系人email address

代码:private void emailchooser_click(object sender, routedeventargs e)

        {

            emailaddresschoosertask emailchooser = new emailaddresschoosertask();

            emailchooser.completed += new eventhandler<emailresult>(emailchooser_completed);

            emailchooser.show();

        }

 

        void emailchooser_completed(object sender, emailresult e)

        {

            this.pagetitle.text = e.email;

        }

—saveemailaddress task

调用联系人程序,并将设置的email address保存到选定的联系人或新建联系人

代码:        private void emailsavebtn_click(object sender, routedeventargs e)

        {

            saveemailaddresstask emailsave = new saveemailaddresstask();

            emailsave.email = "920293408@qq.com";

            emailsave.completed += new eventhandler<taskeventargs>(emailsave_completed);

            emailsave.show();

        }

 

        void emailsave_completed(object sender, taskeventargs e)

        {

            //处理保存完毕后执行代码

        }

multiplemedia task:

—photochooser task

调用图片程序,选择图片,并可以进行裁剪

代码:photochoosertask photo = new photochoosertask();

 

        public multiplemediatask()

        {

            initializecomponent();

            photo.completed += new eventhandler<photoresult>(photo_completed);

        }

 

        void photo_completed(object sender, photoresult e)

        {

            bitmapimage image = new bitmapimage();

            image.setsource(e.chosenphoto);

            image1.source = image;

        }

—cameracapturetask

打开拍照程序

代码:        //打开拍照程序

        private void camerabtn_click(object sender, routedeventargs e)

        {

            cameracapturetask cameratask = new cameracapturetask();

            cameratask.completed += new eventhandler<photoresult>(cameratask_completed);

            cameratask.show();

        }

 

        void cameratask_completed(object sender, photoresult e)

        {

            //执行拍照完成后的代码

            bitmapimage image = new bitmapimage();

            image.setsource(e.chosenphoto);

            image1.source = image;

        }

—mediaplayerlauncher task

-调用系统的media player程序

-可以播放本地、web的media

-在模拟器上无法播放video

-location:none-系统将抛出异常;data-media file在isolated storage;install-在程序的xap包内

—webbrowser task

只可以设置所要浏览的url

代码:  webbrowsertask webtask = new webbrowsertask();

            webtask.url = "https://www.baidu.com";

            webtask.show();

—search task

调用内置的bing搜索程序

代码:   searchtask search = new searchtask();

            search.searchquery = "sparkcode";

            search.show();

 

摘自 漫步天涯-it