成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Windows Phone開發(fā)(23):啟動器與選擇器之二

移動開發(fā)
Windows Phone是微軟發(fā)布的一款手機操作系統(tǒng),它將微軟旗下的Xbox Live游戲、Xbox Music音樂與獨特的視頻體驗整合至手機中。

一、CameraCaptureTask選擇器。

它用于啟動照相機,當你拍下照片后,自動把照的字節(jié)流返回給調用方應用程序。前文說過,啟動器和選擇的使用方法和步驟都是一樣的。對于 CameraCaptureTask組件也如此,不過注意的一點是,處理Completed事件時一定要記住,盡可能的使用頁面類的 Dispatcher.BeginInvoke方法,因為異步回調直接訪問UI元素是不安全的,極有可能會引發(fā)異常,但我不是說絕對。

  1. <Grid> 
  2.     <Grid.RowDefinitions> 
  3.         <RowDefinition Height="*"/> 
  4.         <RowDefinition Height="auto"/> 
  5.     </Grid.RowDefinitions> 
  6.     <Image x:Name="img" Grid.Row="0" Stretch="Uniform" 
  7.            HorizontalAlignment="Stretch" 
  8.            VerticalAlignment="Stretch"/> 
  9.     <Button x:Name="btnCamera" Grid.Row="1" 
  10.             Content="啟動相機程序" Click="btnCamera_Click"/> 
  11. </Grid>
  1. using System; 
  2. using System.Collections.Generic; 
  3. using System.Linq; 
  4. using System.Net; 
  5. using System.Windows; 
  6. using System.Windows.Controls; 
  7. using System.Windows.Documents; 
  8. using System.Windows.Input; 
  9. using System.Windows.Media; 
  10. using System.Windows.Media.Animation; 
  11. using System.Windows.Shapes; 
  12. using Microsoft.Phone.Controls; 
  13. // 引入以下命名空間。 
  14. using Microsoft.Phone.Tasks; 
  15. using System.Windows.Media.Imaging; 
  16. namespace PhoneApp1 
  17.     public partial class MainPage : PhoneApplicationPage 
  18.     { 
  19.         // 第一步,聲明類級別的局部變量,并實例化。 
  20.         CameraCaptureTask MyCamera = new CameraCaptureTask(); 
  21.  
  22.         // 構造函數(shù) 
  23.         public MainPage() 
  24.         { 
  25.             InitializeComponent(); 
  26.  
  27.             // 第二步,在頁面構造函數(shù)中注冊完成回調事件 
  28.             MyCamera.Completed += new EventHandler<PhotoResult>(MyCamera_Completed); 
  29.         } 
  30.         private void btnCamera_Click(object sender, RoutedEventArgs e) 
  31.         { 
  32.             // 第三步,顯示組件 
  33.             MyCamera.Show(); 
  34.         } 
  35.         // 第四步,處理事返回結果 
  36.         void MyCamera_Completed(object sender, PhotoResult e) 
  37.         { 
  38.             // 確定用戶確認了還是取消了操作。 
  39.             if (e.TaskResult == TaskResult.OK) 
  40.             { 
  41.                 // 從返回的流中創(chuàng)建圖象 
  42.                 BitmapImage bmp = new BitmapImage(); 
  43.                 try 
  44.                 { 
  45.                     bmp.SetSource(e.ChosenPhoto); 
  46.                     // 把圖象作為Image控件的源。 
  47.                     // 防止異步回調直接訪問UI元素,故應使用BeginInvoke方法。 
  48.                     Dispatcher.BeginInvoke(() => 
  49.                     { 
  50.                         this.img.Source = bmp; 
  51.                     }); 
  52.                 } 
  53.                 catch (Exception ex) 
  54.                 { 
  55.                     MessageBox.Show(ex.Message); 
  56.                 } 
  57.             } 
  58.         } 
  59.     } 

當然,在模擬器中你是不能進行拍攝的,但可以進行模擬操作,也就是說無論你拍的什么,最后都是返回同一張照片。

 

 別走開,下頁更精彩!

 #p#

二、PhotoChooserTask選擇器。

這個選擇器已經(jīng)包含CameraCaptureTask的功能,當然,它主要是為了選擇圖片。

1、ShowCamera屬性設置是否顯示可以讓用戶啟動相機的按鈕;

2、PixelHeight:選擇圖片后將其裁剪的高度;

3、PixelWidth屬性與上面相同,裁剪寬度。

照片被選擇后,以流的形式返回,駝過Completed事件的參數(shù)PhotoResult的ChosenPhoto屬性獲取。

  1. <Grid> 
  2.     <Grid.RowDefinitions> 
  3.         <RowDefinition Height="*"/> 
  4.         <RowDefinition Height="auto"/> 
  5.     </Grid.RowDefinitions> 
  6.     <Image x:Name="img" Stretch="Uniform" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Row="0"/> 
  7.     <Grid Grid.Row="1"
  8.         <Grid.ColumnDefinitions> 
  9.             <ColumnDefinition Width="auto"/> 
  10.             <ColumnDefinition Width="auto"/> 
  11.             <ColumnDefinition Width="auto"/> 
  12.             <ColumnDefinition Width="auto"/> 
  13.         </Grid.ColumnDefinitions> 
  14.         <Grid.RowDefinitions> 
  15.             <RowDefinition Height="auto"/> 
  16.             <RowDefinition Height="auto"/> 
  17.         </Grid.RowDefinitions> 
  18.         <TextBlock Grid.Column="0" Grid.Row="0" Text="高度:"/> 
  19.         <TextBlock Grid.Column="2" Grid.Row="0" Text="寬度:"/> 
  20.         <TextBox x:Name="txtHeight" Grid.Column="1" 
  21.                  Grid.Row="0" Width="160" Height="auto" FontSize="20"
  22.             <TextBox.InputScope> 
  23.                 <InputScope> 
  24.                     <InputScopeName NameValue="Number"/> 
  25.                 </InputScope> 
  26.             </TextBox.InputScope> 
  27.         </TextBox> 
  28.         <TextBox x:Name="txtWidth" Grid.Column="3" 
  29.                  Grid.Row="0" Width="160" Height="auto" FontSize="20"
  30.             <TextBox.InputScope> 
  31.                 <InputScope> 
  32.                     <InputScopeName NameValue="Number"/> 
  33.                 </InputScope> 
  34.             </TextBox.InputScope> 
  35.         </TextBox> 
  36.         <CheckBox x:Name="chkShowCamera" 
  37.                   Grid.Row="1" Grid.ColumnSpan="2" 
  38.                   Content="顯示啟動相機"/> 
  39.         <Button x:Name="btnShow" 
  40.                 Grid.Column="2" Grid.Row="1" 
  41.                 Grid.ColumnSpan="2" 
  42.                 Content="選擇圖片..." 
  43.                 Margin="5" 
  44.                 Click="btnShow_Click"/> 
  45.     </Grid> 
  46. </Grid>
  1. using System; 
  2. using System.Collections.Generic; 
  3. using System.Linq; 
  4. using System.Net; 
  5. using System.Windows; 
  6. using System.Windows.Controls; 
  7. using System.Windows.Documents; 
  8. using System.Windows.Input; 
  9. using System.Windows.Media; 
  10. using System.Windows.Media.Animation; 
  11. using System.Windows.Shapes; 
  12. using Microsoft.Phone.Controls; 
  13. // 
  14. using Microsoft.Phone.Tasks; 
  15. using System.Windows.Media.Imaging; 
  16. namespace PhoneApp1 
  17.     public partial class Page1 : PhoneApplicationPage 
  18.     { 
  19.         PhotoChooserTask ptc = new PhotoChooserTask(); 
  20.         public Page1() 
  21.         { 
  22.             InitializeComponent(); 
  23.             ptc.Completed += new EventHandler<PhotoResult>(ptc_Completed); 
  24.         } 
  25.         void ptc_Completed(object sender, PhotoResult e) 
  26.         { 
  27.             if (e.TaskResult == TaskResult.OK) 
  28.             { 
  29.                 BitmapImage bmp = new BitmapImage(); 
  30.                 try 
  31.                 { 
  32.                     bmp.SetSource(e.ChosenPhoto); 
  33.                     Dispatcher.BeginInvoke(() => { 
  34.                         this.img.Source = bmp; 
  35.                     }); 
  36.                 } 
  37.                 catch (Exception ex) 
  38.                 { 
  39.                     MessageBox.Show(ex.Message); 
  40.                 } 
  41.             } 
  42.         } 
  43.         private void btnShow_Click(object sender, RoutedEventArgs e) 
  44.         { 
  45.             // 設置相關屬性 
  46.             ptc.PixelHeight = int.Parse(txtHeight.Text); 
  47.             ptc.PixelWidth=int.Parse(txtWidth.Text); 
  48.             ptc.ShowCamera = this.chkShowCamera.IsChecked.HasValue ? chkShowCamera.IsChecked.Value : false
  49.             ptc.Show(); 
  50.         } 
  51.     } 
  52. }

責任編輯:閆佳明 來源: oschina
相關推薦

2013-04-19 15:22:31

Windows Pho啟動器與選擇器

2013-04-18 11:13:04

Windows Pho啟動器與選擇器BingMapsDir

2013-04-18 13:56:09

Windows Pho啟動器與選擇器

2013-04-18 13:47:43

Windows Pho啟動器與選擇器發(fā)送短信

2012-06-20 10:21:50

Windows Pho

2012-06-21 10:59:31

Windows Pho

2010-04-12 17:32:59

Windows Pho

2011-10-19 09:56:58

Gnome Pie程序啟動器

2012-04-16 14:32:31

iOS選擇器代碼

2012-04-19 08:42:22

春Phone沙龍

2012-12-27 14:08:39

Android開發(fā)顏色選擇器

2011-11-28 13:42:55

Sencha Touc組件選擇器

2017-03-20 14:46:07

Android日期時間選擇器

2009-06-30 13:58:00

Java啟動器

2010-08-06 15:44:28

Windows PhoWindows PhoSilverlight

2013-12-02 14:22:14

jQuery選擇器

2012-11-09 14:33:38

WindowsChrome

2013-03-11 10:30:56

CSSWeb

2022-05-10 07:49:40

CSS選擇器

2009-07-16 11:02:33

Swing文件選擇器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美久久一级特黄毛片 | 狠狠草视频 | 91精品国产色综合久久不卡98口 | 在线婷婷| 天天干天天爽 | 欧美精品区 | 久久精品国产亚洲一区二区 | 成人高清在线视频 | 日韩三级电影一区二区 | 中文字幕av一区二区三区 | 中文字幕亚洲视频 | 精品福利在线视频 | 欧美一区二区三区视频在线 | 欧美日韩国产一区二区三区 | 爱综合| 欧美成人一区二区三区片免费 | 九九色综合 | 91精品国产综合久久久密闭 | 一级黄在线观看 | 中文字幕精品一区久久久久 | 狠狠干天天干 | 精品国产一区二区三区久久久蜜月 | 精品中文视频 | 国产精品一区二区三级 | 久久久精品一区 | 中文在线观看视频 | av一级 | 国产精品福利视频 | 亚洲国产高清在线 | 午夜私人影院在线观看 | 最新国产精品视频 | 国产十日韩十欧美 | 国产乱码精品一区二区三区五月婷 | 亚洲国产欧美日韩 | 欧美日韩毛片 | 一区二区免费在线观看 | 中文字幕在线观看国产 | 欧美精品三区 | 一区二区三区四区国产 | 欧美国产日韩精品 | 日韩欧美在线观看 |