自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

一、CameraCaptureTask選擇器。

它用于啟動照相機(jī),當(dāng)你拍下照片后,自動把照的字節(jié)流返回給調(diào)用方應(yīng)用程序。前文說過,啟動器和選擇的使用方法和步驟都是一樣的。對于 CameraCaptureTask組件也如此,不過注意的一點(diǎn)是,處理Completed事件時一定要記住,盡可能的使用頁面類的 Dispatcher.BeginInvoke方法,因?yàn)楫惒交卣{(diào)直接訪問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="啟動相機(jī)程序" 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.         // 第一步,聲明類級別的局部變量,并實(shí)例化。 
  20.         CameraCaptureTask MyCamera = new CameraCaptureTask(); 
  21.  
  22.         // 構(gòu)造函數(shù) 
  23.         public MainPage() 
  24.         { 
  25.             InitializeComponent(); 
  26.  
  27.             // 第二步,在頁面構(gòu)造函數(shù)中注冊完成回調(diào)事件 
  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.         // 第四步,處理事返回結(jié)果 
  36.         void MyCamera_Completed(object sender, PhotoResult e) 
  37.         { 
  38.             // 確定用戶確認(rèn)了還是取消了操作。 
  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.                     // 防止異步回調(diào)直接訪問UI元素,故應(yīng)使用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.     } 

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

 

 別走開,下頁更精彩!

 #p#

二、PhotoChooserTask選擇器。

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

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

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="顯示啟動相機(jī)"/> 
  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.             // 設(shè)置相關(guān)屬性 
  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. }

責(zé)任編輯:閆佳明 來源: oschina
相關(guān)推薦

2013-04-18 11:13:04

Windows Pho啟動器與選擇器BingMapsDir

2013-04-18 13:56:09

Windows Pho啟動器與選擇器

2013-04-19 15:22:31

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沙龍

2009-06-30 13:58:00

Java啟動器

2017-03-20 14:46:07

Android日期時間選擇器

2012-12-27 14:08:39

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

2011-11-28 13:42:55

Sencha Touc組件選擇器

2013-12-02 14:22:14

jQuery選擇器

2012-11-09 14:33:38

WindowsChrome

2010-08-06 15:44:28

Windows PhoWindows PhoSilverlight

2022-05-10 07:49:40

CSS選擇器

2010-09-07 11:14:32

CSS屬性選擇器CSS

2013-03-11 10:30:56

CSSWeb
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號