コンテンツ切り替え時間の変更と更新処理
作成した2枚のタイルのコンテンツ入れ替え時間を自由に調整することができます。また、タイルをクリックするとコンテンツを更新する、という処理も組み込むことが可能です。
コンテンツ切り替え時間の変更処理
ここでは、スライダーを利用してアニメーション時間を変更できるようにします。これは、C1TileServiceクラスのUpdateIntervalプロパティを使用します。このプロパティの値に、TimeSpanクラスのFromSeconds()メソッドの戻り値を入れることで、秒単位でコンテンツ切り替え時間を操作できます。
このアプリケーションでは、アプリケーション起動時にコンテンツ切り替え時間を1秒に変更し、スライダーを操作して最大10秒まで変更できるようにします。
これらの処理は、メインウィンドウの初期化イベントハンドラと、SliderコントロールのValueChangedイベントハンドラで行います。
メインウィンドウの初期化イベントハンドラではFromSeconds()メソッドの引数に「1」を設定し、SliderコントロールのValueChangedイベントハンドラでは、FromSeconds()メソッドの引数にSliderコントロールのValueプロパティの値を設定します。
Imports C1.WPF.Tile Class MainWindow Sub New() ' この呼び出しはデザイナーで必要です。 InitializeComponent() ' InitializeComponent() 呼び出しの後で初期化を追加します。 C1TileService.UpdateInterval = TimeSpan.FromSeconds(1) End Sub Private Sub Slider1_ValueChanged(sender As System.Object, e As System.Windows.RoutedPropertyChangedEventArgs(Of System.Double)) Handles Slider1.ValueChanged C1TileService.UpdateInterval = TimeSpan.FromSeconds(Slider1.Value) End Sub End Class
using C1.WPF.Tile; namespace Tile_WPF_cs { /// <summary> /// MainWindow.xaml の相互作用ロジック /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); C1TileService.UpdateInterval = TimeSpan.FromSeconds(1); } private void slider1_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e) { C1TileService.UpdateInterval = TimeSpan.FromSeconds(slider1.Value); } } }
タイルクリックでの更新処理
C1TileクラスのUpdateTileメソッドを実行すると、その時点でコンテンツを更新しコンテンツの入れ替えを行います。この処理を、C1TileコントロールとC1SlideTileコントロールのClickイベントハンドラに作成すれば、タイルをクリックするとコンテンツ入れ替えのアニメーションが実行されます。
Private Sub C1SlideTile1_Click(sender As System.Object, e As System.EventArgs) Handles C1SlideTile1.Click Dim tile As C1Tile = TryCast(sender, C1Tile) If tile IsNot Nothing Then tile.UpdateTile() End If End Sub Private Sub C1Tile1_Click(sender As System.Object, e As System.EventArgs) Handles C1Tile1.Click Dim tile As C1Tile = TryCast(sender, C1Tile) If tile IsNot Nothing Then tile.UpdateTile() End If End Sub
private void C1Tile1_Click(object sender, EventArgs e) { C1Tile tile = sender as C1Tile; if (tile != null) tile.UpdateTile(); } private void C1SlideTile1_Click(object sender, EventArgs e) { C1Tile tile = sender as C1Tile; if (tile != null) tile.UpdateTile(); }
まとめ
C1TileコントロールとC1SlideTileコントロールは、WPFアプリケーションらしい視覚効果の高いコンテンツをウィンドウに組み込むことができるコントロールです。多くのWebページに見られるような、バナー効果やワンポイントアドバイスなどを表示するのに役立ちそうです。