Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

ページ内に別ウィンドウを持ったWPFアプリケーションの作成

ComponentOne Studio Enterprise 2011JのC1Windowコントロールを使ったWPFアプリケーションの作成

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2011/10/31 14:00
目次

CheckBoxコントロールがクリックされた時の処理

 ツールボックスに配置したCheckBoxコントロールでは、メインページの背景色と枠線を操作するようにします。それぞれのCheckBoxコントロールのChecked/Uncheckedイベントハンドラでこの処理を実行します。メインページをユーザーコントロールから操作する場合は、「Application.Current.MainWindow」を使用してメインページをオブジェクトとして取得し、各プロパティを操作します。

 また、枠線の表示/非表示は、枠線の太さの設定によって実装しています。この処理では、BorderThicknessプロパティを使用し、プロパティの値にThicknessオブジェクトを設定します。クラスのコンストラクタの引数で、縦横四辺の枠線の太さを変えることができます。

Visual Basic
Public Class Toolbox

    Private mw As Window = Application.Current.MainWindow
    Private Sub CheckBox1_Checked(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
        mw.Background = New SolidColorBrush(Colors.BlueViolet)
    End Sub

    Private Sub CheckBox1_Unchecked(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
        mw.Background = New SolidColorBrush(Colors.White)
    End Sub

    Private Sub CheckBox2_Checked(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
        Dim th2 As New Thickness(2, 2, 2, 2)
        mw.BorderThickness = th2
    End Sub

    Private Sub CheckBox2_Unchecked(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
        Dim th0 As New Thickness(0, 0, 0, 0)
        mw.BorderThickness = th0
    End Sub
End Class
C#
public partial class toolbox : UserControl
{
    public toolbox()
    {
        InitializeComponent();
    }

    private Window mw = Application.Current.MainWindow;
    private void CheckBox1_Checked(object sender, RoutedEventArgs e)
    {
        mw.Background = new SolidColorBrush(Colors.BlueViolet);
    }

    private void CheckBox1_Unchecked(object sender, RoutedEventArgs e)
    {
        mw.Background = new SolidColorBrush(Colors.White);
    }

    private void CheckBox2_Checked(object sender, RoutedEventArgs e)
    {
        Thickness th2 = new Thickness(2, 2, 2, 2);
        mw.BorderThickness = th2;
    }

    private void CheckBox2_Unchecked(object sender, RoutedEventArgs e)
    {
        Thickness th0 = new Thickness(0,0,0,0);
        mw.BorderThickness = th0;
    }
}

まとめ

 C1Windowコントロールを使用すると、手軽にカスタムウィンドウを作成できます。ダイアログのデザインも、通常のWPFページと同様にデザイナを使ってXAMLで作成できるので、好きなコントロールを使って自由なレイアウトを表現できます。

 C1Windowコントロールを呼び出すメソッドによって、モードレス/モーダルを切り替えることができるため、サブウィンドウが必要なアプリケーションの作成には大いに威力を発揮するコントロールだと思います。

参考文献



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

著者プロフィール

  • 瀬戸 遥(セト ハルカ)

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

バックナンバー

連載:ComponentZine(ComponentOne Studio)

もっと読む

All contents copyright © 2005-2020 Shoeisha Co., Ltd. All rights reserved. ver.1.5