SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ComponentZine(ComponentOne)

コンテンツをスライド表示するWPFアプリケーションの作成

ComponentOne Studioを活用したWindowsフォームアプリケーションの作成

  • このエントリーをはてなブックマークに追加

コンテンツ切り替え時間の変更と更新処理

 作成した2枚のタイルのコンテンツ入れ替え時間を自由に調整することができます。また、タイルをクリックするとコンテンツを更新する、という処理も組み込むことが可能です。

コンテンツ切り替え時間の変更処理

 ここでは、スライダーを利用してアニメーション時間を変更できるようにします。これは、C1TileServiceクラスのUpdateIntervalプロパティを使用します。このプロパティの値に、TimeSpanクラスのFromSeconds()メソッドの戻り値を入れることで、秒単位でコンテンツ切り替え時間を操作できます。

 このアプリケーションでは、アプリケーション起動時にコンテンツ切り替え時間を1秒に変更し、スライダーを操作して最大10秒まで変更できるようにします。

 これらの処理は、メインウィンドウの初期化イベントハンドラと、SliderコントロールのValueChangedイベントハンドラで行います。

 メインウィンドウの初期化イベントハンドラではFromSeconds()メソッドの引数に「1」を設定し、SliderコントロールのValueChangedイベントハンドラでは、FromSeconds()メソッドの引数にSliderコントロールのValueプロパティの値を設定します。

Visual Basic
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
C#
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イベントハンドラに作成すれば、タイルをクリックするとコンテンツ入れ替えのアニメーションが実行されます。

Visual Basic
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
C#
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ページに見られるような、バナー効果やワンポイントアドバイスなどを表示するのに役立ちそうです。

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
ComponentZine(ComponentOne)連載記事一覧

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

8ビットコンピュータの時代からBASICを使い、C言語を独習で学びWindows 3.1のフリーソフトを作成、NiftyServeのフォーラムなどで配布。Excel VBAとVisual Basic関連の解説書を中心に現在まで40冊以上の書籍を出版。近著に、「ExcelユーザーのためのAccess再...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7439 2013/10/17 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング