WP7學習筆記(二)

一、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 = "[email protected]";
            emailTask.Cc ="[email protected]";
            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 = "[email protected]";
            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 = "http://www.baidu.com";
            webTask.Show();
—Search Task
調用內置的Bing搜索程序
代碼:   SearchTask search = new SearchTask();
            search.SearchQuery = "SparkCode";
            search.Show();

 

發佈了23 篇原創文章 · 獲贊 4 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章