SHOEISHA iD

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

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

ComponentZine(ComponentOne)

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

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

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

アニメーションの速度と画像をクリックした時の処理

 GUIができ上がったら、画像をクリックした時にその画像を別ウィンドウで表示する処理を、Image_MouseDownイベントハンドラに作成します。

 ① 最初に、アニメーションの動作速度を設定する処理を、初期化処理の中に記述します(詳細は前回の記事を参照してください)。

C1TileService.UpdateInterval = TimeSpan.FromSeconds(2)

 ② 作成したイベントハンドラ「Image_MouseDown」に、マウスボタンを押した画像を別ウィンドウで表示する処理を作成します。

 まず、新しいWindowクラスとImageクラスのインスタンスを作成します。

 次に、イベントハンドラの引数「sender」にはマウスボタンが押されたImageコントロールへの参照が格納されていますので、Sourceプロパティを参照してImageコントロールに設定されている画像のファイル名を取得します。

 そして、それを新たに作成したImageオブジェクトのSourceプロパティに代入し、WindowオブジェクトのContentプロパティに設定し、Showメソッドでウィンドウを表示します。

 イベントハンドラの引数「Source」から画像を識別しますので、どの画像をクリックしてもその画像が別ウィンドウで表示されます。

Visual Basic
Imports C1.WPF.Tile

Class MainWindow

    Sub New()

        ' この呼び出しはデザイナーで必要です。
        InitializeComponent()

        ' InitializeComponent() 呼び出しの後で初期化を追加します。
        C1TileService.UpdateInterval = TimeSpan.FromSeconds(2)
    End Sub

    Private Sub Image_MouseDown(sender As Image, e As System.Windows.Input.MouseButtonEventArgs)
        Dim newwnd As Window = New Window()
        Dim img As Image = New Image()
        img.Source = sender.Source
        newwnd.Content = img
        newwnd.Show()
    End Sub
End Class
C#
using C1.WPF.Tile;
namespace Tile_img_WPF_cs
{
    /// <summary>
    /// MainWindow.xaml の相互作用ロジック
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            C1TileService.UpdateInterval = TimeSpan.FromSeconds(1);
        }

        private void Image_MouseDown(object sender, MouseButtonEventArgs e)
        {
            var window = new Window();
            var image = new Image();
            image.Source = (sender as Image).Source;
            window.Content = image;
            window.Show();
        }
    }
}

まとめ

 このように、C1Tile/C1SlideTileコントロールは、ContentTemplate/BackContentTemplateプロパティ内にGrid・StackPanelなどと組み合わせることによって、いくつものコントロールを組み込んでいろいろなバリエーションのレイアウトを作成することができます。

 今回はテキストや画像を表示するアプリケーションを作成しましたが、ボタンやチェックボックスなどの動作系コントロールを使って、ランチャーアプリケーションを作成することも可能です。

 アイデア次第で、視覚効果が高く操作性に優れたアプリケーションを作成することができるコントロールといえるでしょう。

 記事およびサンプルプログラムに含まれる画像データを、許可なく複製・転載・転売することを固く禁止します。

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

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

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

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

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

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

この記事をシェア

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

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング