ちょっとづつWindows Phone Toolkitのコントロールを紹介していきます。
今回はTimePickerです。
TimePickerは時間を選択させるコントロールで、日付を選択するDatePickerも含めていろいろと使い勝手の良いコントロールです。
導入の方法は前回のTuggleSwitchと途中までは同じ、参照にMicrosoft.Phone.Controls.Toolkit.dllを参照に追加、xamlコードに以下を追加します。
xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
SilverlightToolkitの導入は[Windows Phone] WindowsPhoneToolkit 紹介 その0 インストールを参照にしてください。
基本的なタグは、
<toolkit:TimePicker x:Name="timePicker"/>
時間と分が選択できるTimePickerが表示できました。
主なプロパティ
Header
ヘッダー部を追加します。
Value
TimePickerの中身の数字を変更します。
<toolkit:TimePicker HorizontalAlignment="Left" Value="14:25" Margin="49,49,0,0" Name="timePicker1" VerticalAlignment="Top" Width="284" Header="TimePicker" />
DatePickerの表示の書式を指定できる。
xamlコードで書く場合は、
<toolkit:TimePicker
ValueStringFormat="{}{0:hh時mm分}"
プログラムコードなら、
this.timePicker1.ValueStringFormat = "{0:hh時mm分}";
PickerPageUri
PickerPageUrlは指定した別ページで、デフォルトの時間選択のインターフェース(下画像)ではなく、
自分で作成したページを利用することができるプロパティです。
PagePickerUriに指定があると、
PickerPageを利用する方法は、まず遷移先のページを作成します。
[ソリューションエクスプローラー]上で右クリック、[追加]→[新しい項目]で[WindowsPhonet縦向きのページ]を追加します。
pickerPageUriで利用するページは「IDateTimePickerPage」をインターフェイスに持つ必要があります。
IDateTimePickerPageはValueプロパティとしてnull許容型のDateTIme型を持ちます。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Controls.Primitives; // 追加
namespace TimePickerSample
{
public partial class PickerPage : PhoneApplicationPage, IDateTimePickerPage // 追加
{
public DateTime? Value { get; set; } // IDateTimePickerPageインターフェイスはValueプロパティを持つ
public PickerPage()
{
InitializeComponent();
}
/// <summary>
/// ボタンクリックで現在時間をTimePickerに返す。
/// Valueプロパティに時間を保持して、NavigationService.GoBack()で戻る。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, RoutedEventArgs e)
{
this.Value = DateTime.Now;
NavigationService.GoBack();
}
}
}
これで簡単ですが、PagePickerUriプロパティで指定するためのページが作成できました。
続いてPagePickerコントロールを書き換えます。
TimePickerSampleというアプリケーションのPickerPage.xamlというページで画面選択させたい場合以下のように指定します。
<toolkit:TimePicker
PickerPageUri="/TimePickerSample;component/PickerPage.xaml"
Name="timePicker2"
Header="PickerPageUri"
/>
サンプルをダウンロードする
動作の確認できるサンプルを用意しましたので以下からダウンロードください。
サンプルをダウンロード(SDK7.1)
Please give us your valuable comment