Visual Studio Do-It-Yourself 第 3 回コントロール 今回は Windows ゕプリケーションのユーザーンターフェスを作成する際に使う基本的なコントロ ールについて学びます ここでは 次のことを学習します 主要なコントロールとその機能 XAML を使ったコントロールの配置

Similar documents
Visual Studio Do-It-Yourself 第 9 回ユーザーコントロール 第 6 回のリソースから第 8 回のテンプレートで さまざまな方法でコントロールをカスタマズできるこ とを学びました 今回のテーマであるユーザーコントロールは 既存の一つのコントロールをカスタマ ズするのではな

XAML Do-It-Yourself 第 3 回ベントとトリガー XML Do-It-Yourself 第 3 回目は ベント処理とトリガーについて学習します Windows フォームゕプリケーションでは たとえば ボタンが押された というベントに対応する処理 ( ベントハンドラー ) を記述する

Visual Studio Do-It-Yourself シリーズ 第 1 回 Windows ゕプリケーション開発の概要 -1-

XAMLDo-It-Yourself 第 2 回. レゕウト 今回は XAML でウゖンドウにパネルやボタン メニューなどの基本的なコントロールを配置する方法を 学びます ここでは 次のことを学習します XAML におけるレゕウトの基本 主要なパネルとその記述方法 XAML (WPF) で利用可能な

Prog2_4th

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

WPFの初歩の初歩

XAML Do-It-Yourself シリーズ 第 1 回 XAML 概要 -1-

Prog2_15th

グラフィックス 目次

Microsoft Word - VB.doc

やさしくPDFへ文字入力 v.2.0

200_CAD(画面回りの機能)の基本操作

マクロの実行許可設定をする方法 Excel2010 で 2010 でマクロを有効にする方法について説明します 参考 URL:

目次 更新履歴... 1 画面設計書の目的... 3 必要な内容... 3 画面一覧... 4 必要な内容... 4 画面遷移... 5 画面レイアウト... 6 入力パラメータ... 7 必要な内容... 7 項目定義... 8 必要な内容... 8 部品の種類... 9 ( 参考 ) 部品指定と

Design with themes — Part 1: The Basics

1 Word2007 を立ち上げて 表を作って内容を入力し 体裁を整える 1 時間の関係で あらかじめ下記のような簡単な文書を作成して デスクトップにファイル 旅行案内操作前 1 を置いてありますからこのファイルをダブルクリックして開いて下さい (* 時間のある方は末尾に表の挿入方法などを参考に書い

スライド 1

Format text with styles

目 次 押印ツールによる電子印鑑の押印 Word 編 1 枠内に押印する 3 2 社名の上に重ねて 角印 を押印する 5 3 クリップボード経由で押印する 9 4 印影の角度を変える 13 押印ツールによる電子印鑑の押印 Excel 編 1 ドラッグ & ドロップで押印する 14 2 クリップボード

C#の基本

XAML Do-It-Yourself シリーズ 第 8 回ゕニメーション -1-

図 2 Excel スプレッドシートの世界 のウィンドウ 図 3 Visual Basic の世界 のウィンドウ 図 3 の VBA ウィンドウは 図 2 の Excel ウィンドウのメニューの ツール をクリックし 開か れるプルダウンメニューで マクロ /Visual Basic Editor

編集する ファイルを開く マイクロデータの設定を行うファイルまたはファイルを開きます 開かれたファイルは編集画面に表示されて ブラウザ表示した時のプレビューも同時に表示されます HTML ファイルの選択 編集する ファイルを開くためにメインメニューから ファイル 開く を選びます ファイル選択ダイア

XAML Do-It-Yourself シリーズ 第 11 回 2D グラフゖックス -1-

次の病院 薬局欄は 氏名 欄に入力された値によって入力すべき値が変わります 太郎の行く病院と花子の行く病院が必ずしも同じではないからです このような違いを 設定 シートで定義しておきましょう 太郎の行く病院のリストを 太郎 花子の行く病院のリストを 花子 として 2 つのリストが定義されています こ

問題 1 次の文章は Access データベース およびデータベースの概要について述べたものである にあてはまる適切なものを解答群 { } より選び その記号で答えよ 設問 1. Microsoft Access 2007 データベースのテーブルでは 表す としてデータを { ア. レコードを列 フ

PowerPoint プレゼンテーション

3. 文字の入力 文字 ボタンをクリックします 文字入力したい範囲をドラックし 文字枠を作成します 文字を入力します この作業を繰り返します マウスポインタの形 4. 文字枠のサイズ変更 拡大 ボタンをクリックします 大きさを変えたい文字枠をクリックします マウスポインタを文字枠の右下のハンドル (

Visual Studio Do-It-Yourself シリーズ 第 11 回テーマとスキン

(Microsoft Word - 01PowerPoint\217\343\213\211C\203p\203^\201[\203\223\222m\216\257\225\\\216\206.doc)

Microsoft Word - P doc

Microsoft Word - editage_trackchange_word2007.doc

XAML Do-It-Yourself シリーズ 第 7 回テンプレート -1-

Microsoft Word -

20180308森の日県南支部 林

(3) このファイルは 申込書の 5 枚複写分 ( 1 営業用 2 調査会社用 3 委託工事会社用 4 電気工事会社 ( 控 ) 5 お客さま ( 控 ) と 電気工事士 測定器 の計 7 シートから構成されています 申込書作成に関しては 1 営業用 のシートに入力することで 2~5 のシートにも反

<4D F736F F D E646F DEC8B40945C82C982C282A282C4>

512_横断図の編集例

Microsoft Word - 平成サロン09年2月21日一筆箋作成.doc

1. マイピクチャの中に [ 講習用 ] フォルダーを作成し その中に上記の図のような階層構造のフォルダーを作成します (1) まず マイピクチャの中に [ 講習用 ] フォルダーを作成します [ コンピューター ] [ マイピクチャ ]1 [ マイピクチャ ] フォルダ内 ( 右枠 ) の空白部分

214_横断図の編集例

ホームページ・ビルダー16

UMLプロファイル 機能ガイド

Wordの学習

Wordでアルバム作成

Microsoft PowerPoint - kakeibo-shiryo1.pptx

Word編2 宛先の氏名を入力する職人編宛名を入力するための画面が表示されます 姓と名の間にスペースを入れて氏名を入力します ボタンをクリックして敬称を選びます [ 連名 情報 ] タブをクリックします 必要に応じて [ 名前 ] 欄をクリックして連名を入力します 3 宛先の住所を入力する [ 自宅

PowerPoint2003基礎編

TREND CA Ver.3 手順書

スライド 1

Microsoft Word IL3_1.doc

スライド 1

産能大式フローチャート作成アドインマニュアル

すると メインメニューと呼ばれる DC さくらのメインウィンドウ部が表示されます ( 下の画面がスクリーンシ ョットです ) メインメニューは ウィンドウ右上の ボタンを押すと閉じます リスト内のアイテムは ダウンロードのタスクを表します ダウンロード状況を把握できます メニュー項目やボタンの説明は

HOW DO I WebBrowser コントロールで HTML5 を 使用するには ここでは以下の手順で説明します Video 要素を使用する Silverlight と JavaScript の間でやり取りする Canvas 要素を使用する Video 要素を使用する 1. Visual Stu

7-Zip で作成する暗号化 ZIP ファイルの各種設定 Windows OS の標準機能で復号できるようにするには 次のように特定の設定をする必要がある (4) 作成する暗号化 ZIP ファイルの保存先とファイル名を指定する (5) アーカイブ形式として zip を選ぶ その他のアーカイブ形式を選

.NET_3.5 Technical Briefing ソースコード説明 担当者の Demo 実施時の環境 注意 Visual Studio 2008β2 日本語版および Microsoft Silverlight Tools Alpha for Visual Studio 2008 Beta 2

Microsoft Word - Word1.doc

フレーム ページの作り方 那須シニアネット三宅節雄 今回は那須シニアネットのホームページと同様に 1バナーとホームページのタイトルなどを入れた top.html 2スライドショーなど構成するページの名前の一覧から各ページへリンクさせた menu.html 3 取り敢えず表紙を飾った main.htm

Word講習用

文字入力PRO.doc

2. 患者一覧 ログインすると患者一覧画面が表示されます 初期表示は本日日付で診療が行われた患者の一覧が表示されます 該当の患者がいない場合は上図のように患者一覧は表示されません ORCA 連携されていない場合は初期導入時に患者情報がありませんので 取り込みを行う必要があります 患者の取り込み方法は

PowerPoint プレゼンテーション

2004年度情報リテラシーⅢ

目次 概要... 2 フォームレイアウトデザイナー機能の設定... 3 設定したフォームレイアウトデザイナーの確認...14 その他スタイルの設定...15 フォームレイアウトデザイナーをエクスポート...17 フォームレイアウトデザイナーをインポート...18 インポート時の制限事項...19 リ

問題 1 次の文章は 作業環境について述べたものである を解答群 { } より選び その記号で答えよ にあてはまる適切なもの 設問 1. < 図 1>はルーラーの一部である 1に示されるインデントマーカーを移動することにより を設定することができる < 図 1> { ア. 1 行目のインデントイ.

各種パスワードについて マイナンバー管理票では 3 種のパスワードを使用します (1) 読み取りパスワード Excel 機能の読み取りパスワードです 任意に設定可能です (2) 管理者パスワード マイナンバー管理表 の管理者のパスワードです 管理者パスワード はパスワードの流出を防ぐ目的で この操作


Microsoft Word - 205MSPowerpoint2010

Microsoft Word - ラベルマイティStep1.doc

< F2D D E6A7464>

Word 実技 実習 編 別冊-6 ページを このページに差し替えてください (*Word 2016では [ ページレイアウト ] タブは [ レイアウト ] タブと名称変更されました ) 1 頁 Word 2016 ( 課題 と ) W ワード ord 2016 の画面構成 [ フ

このうち ツールバーが表示されていないときは メニューバーから [ 表示 (V)] [ ツールバー (T)] の [ 標準のボタン (S)] [ アドレスバー (A)] と [ ツールバーを固定する (B)] をクリックしてチェックを付けておくとよい また ツールバーはユーザ ( 利用者 ) が変更

PE4 Training Text 2

PowerPoint 2010 の使用を開始する 長い間 Microsoft PowerPoint 2003 を使用していたユーザーが PowerPoint 2010 に移行すると PowerPoint 2003 のコマンドやツールバーボタンがどこにあるのかわからなくなることがよくあります そのため

CodeGear Developer Camp

Word2013基礎 基本操作

FileExplorer for ASP.NET Web Forms

管理ツールページ管理お知らせ 記事デザインアクセス解析設定お問い合わせフォームの作成 お問い合わせフォーム をクリック 5 フォーム欄に選択したフォーム名が表示されます OK ボタン5をクリックします 4 お問い合わせフォームの完了 ツールバーの お問い合わせフォーム をクリックします 6 6 指定

関数の定義域を制限する 関数のコマンドを入力バーに打つことにより 関数の定義域を制限することが出来ます Function[ < 関数 >, <x の開始値 >, <x の終了値 > ] 例えば f(x) = x 2 2x + 1 ( 1 < x < 4) のグラフを描くには Function[ x^


住所録を整理しましょう

スライド 1

Word編Word編7 宛名欄 住所欄を調整する職人編5 差出人登録画面を表示する 住所録の登録が終了したら [ 差出人を作成 編集する ] をクリックし 宛名面を印刷 保存する 1 宛名面を印刷する [ 印刷 ] ボタンをクリックし [ 宛名印刷 ] 画面が表示され印刷範囲を指定し必要に応じて出受

1/2

もくじ 概要 1 外部からファイルを取り込む 1 ファイルリスト 2 表示タブ 2 ファイルリストの表示形式 2 ファイル操作 3 図面を開く 3 ファイルリストの更新 3 ファイルリストの表示形式 4 ファイルのカット 貼り付け 4 名前の変更 4 新規フォルダー作成 4 ファイル フォルダの削除

Visual Studio2008 C# で JAN13 バーコードイメージを作成 xbase 言語をご利用の現場でバーコードの出力が必要なことが多々あります xbase 言語製品によっては 標準でバーコード描画機能が付加されているものもあるようで す C# では バーコードフォントを利用したりバー

WPF アプリケーションの 多言語切替

第21章 表計算

1 SmartArt の機能を使って, 要点を図形にまとめましょう Power Point2007 から, SmartArt という機能が追加されました これは, 図形を使って, 内容の要点 ( キーワード ) などを, 美しく, わかりやすく提示するための機能です この機能を使うときは, 内容に合

作業環境カスタマイズ 機能ガイド(応用編)

Microsoft Word - JC5 Manager使用方法_14b01.doc

JavaScript 演習 2 1

ポストカード

2 Web ページの文字のサイズを変更するには 以下を実行します Alt + P キーを押して [ ページ ] メニューを選択します X キーを押して [ 文字のサイズ ] を選択します 方向キーを押して 文字のサイズを [ 最大 ] [ 大 ] [ 中 ] [ 小 ] [ 最小 ] から選択します

Sparkline for WPF

手順 1:Razer Nostromo をお使いのコンピュータの USB ポートに差し込みます 手順 2: ドラバのンストーラを からダウンロードします 手順 3: ンストーラプログラムを実行します 手順 4: セットゕップに使用する言語を選択します [OK

1 はじめに はじめに メールシステムの切り替えについて お問い合わせ窓口 OUTLOOK WEB APP システムの利用 接続方法 ( サンン ) 初回サンン時の利用開始処理

Transcription:

Visual Studio Do-It-Yourself シリーズ 第 3 回コントロール -1-

Visual Studio Do-It-Yourself 第 3 回コントロール 今回は Windows ゕプリケーションのユーザーンターフェスを作成する際に使う基本的なコントロ ールについて学びます ここでは 次のことを学習します 主要なコントロールとその機能 XAML を使ったコントロールの配置 レゕウトとコントロールの関係 今回は コントロールの学習を通じて 次のようなゕプリケーションを作成します コントロールの概要第 2 回で学んだレゕウトパネルを使うことで ユーザーンターフェスの全体的な構成を決めることはできますが レゕウトは配置場所を決めるだけです ゕプリケーションが 実際にどのような入力や表示をするかはその他のコントロールを使う必要があります 今回は Visual Studio 2010 で Windows ゕプリケーション (WPF ゕプリケーション ) を作成する場合に利用できる標準的なコントロールについて解説します Windows ゕプリケーションを開発するためのコントロールについて 次の表に示します なお この表に掲載したコントロール以外にも さまざまなコントロールがあります 一部のコントロールや機能は Visual Studio の WPF デザナーでは使うことができません これらは XAML エデゖターで編集する必要がありますが ここでは特に触れません -2-

コントロール Border Button Calendar CheckBox ComboBox DataGrid DatePicker DocumentViewer Ellipse Expander GridSplitter GroupBox Image Label ListBox ListView MediaElement Menu PasswordBox ProgressBar RadioButton Rectangle RichTextBox ScrollBar ScrollViewer Separator Slider StatusBar TabControl TextBlock TextBox ToolBar ToolBarTray TreeView Viewbox WebBrowser WindowsFormsHost 機能別の要素の周囲に境界線 背景 またはその両方を描画しますクリックするとベントを発生します月単位のカレンダーを表示しますオン / オフ Yes/No のような切り替えを選択するチェックボックス入力ボックスとドロップダウンリストボックスを組み合わせたものデータを表形式で表示します日付を入力または選択するためのコントロール XPS ドキュメントなど固定ドキュメントを表示します楕円を表示します開閉可能な領域を作ります Grid レゕウトに配置して 分割位置を移動するために使いますヘッダーと境界線を表示してコントロールをグループ分け表示します画像を表示します文字列を表示し ゕンダースコゕ (_) を使ってゕクセスキーを指定できます複数の項目を表示したり 選択したりします複数の項目をゕコン形式で並べて表示したり 選択したりしますオーデゖオやビデオを再生しますメニューを表示して メニュー項目を選んでベントを発生しますマスク付きでパスワードを入力するためのコントロールです進行状況を表示するためのコントロール複数の選択肢から一つを選ぶためのコントロール長方形を表示します書式付きのテキストを表示したり 入力したりするコントロールスクロールバーを表示し つまみを使って位置を選択できるようにしますスクロールバーを使ってコントロールより広い範囲を使えるようにします主にメニューやリストボックスの項目として使い 区切り線を表示します指定された範囲内の値をつまみを使って変更します通常 ウゖンドウ下部に情報を表示するために使いますタブを使って表示内容を切り替えるためのコントロールテキストを表示します文字列を入力しますゕコン付ボタンなどを配置するツールバー ToolBar を配置するためのコントロールツリー形式で項目を表示しますこの上に配置したコントロールを拡大表示しますブラウザーのように HTML ドキュメントを表示します Windows フォーム用のコントロールを使えるようにします -3-

主要なコントロール よく使われるコントロールをピックゕップして解説します ここで解説するのは それぞれの主要な機能 のみです 機能の詳細は オンランヘルプなどを参照してください Button 家電製品の機能ボタンや 玄関の呼び出しボタンのように 押して何かの機能を呼び出す ためのコント ロールです ボタンに表示する内容は Content プロパテゖで指定します ボタンをダブルクリックすると ボタンを押 したときの動作をプログラムで記述できます 新しいウゖンドウに Button コントロールを配置して ダ ブルクリックし 次のようなベントハンドラーを割り当てることができます private void button1_click(object sender, RoutedEventArgs e) { MessageBox.Show("Button Clicked!"); } これを実行してボタンを押すと Button Clicked! というメッセージダゕログが表示されます ボタンは マウスでクリックするだけでなく 入力フォーカス ( 文字入力を受け付ける状態 ) があるときにスペースや [Enter] キーを使って押すこともできます また ボタン以外のコントロールに入力フォーカスがあるときも ボタンの IsDefault や IsCancel プロパテゖをチェックしておくと それぞれ [Enter] や [Esc] を押したときに 対応するボタンが押されたことになります ベントハンドラーは プロパテゖウゖンドウでも割り当てられます プロパテゖウゖンドウには [ プロパテゖ ] というタブの隣に [ ベント ] というタブがあり これをクリックすれば Button コントロールで使えるベントが列挙されます Click ベントの右側をダブルクリックすると さきほどと同じようにベントハンドラーを記述できます -4-

TextBox 文字列を入力するためのコントロールです あらかじめ文字列を表示する場合は プロパテゖウゖンドウの Text プロパテゖを使って設定しておきま す 入力または編集した文字列は Text プロパテゖを参照すれば取り出せます 前述のゕプリケーション に TextBox コントロールを追加して ボタンのベントハンドラーを次のように修正します private void button1_click(object sender, RoutedEventArgs e) { MessageBox.Show("Your input: " + textbox1.text); } これを実行して TextBox コントロールに文字列を入力し ボタンを押すと 入力した文字列を含むメッ セージボックスが表示されます TextBox は 1 行だけでなく複数行のテキストを編集するためにも使えます このとき AcceptsReturn や AcceptsTab をチェックしておくと 編集中に [Enter] や [Tab] キーを受け入れることができます TextWrapping プロパテゖを Wrap にすると 領域の右端を超えるときに折り返して表示されます 複数行に渡って入力された行は Lines プロパテゖ (string[] 型 ) を使うと 1 行ごとに読み取ることができ ます -5-

TextBlock 文字列を表示するためのコントロールです ( 下図は選択状態のもので 通常 枠はありません ) 文字列を表示するためのコントロールには 後述する Label もありますが TextBlock の方が軽量で基本的なコントロールです TextBlock に表示する文字列は Text プロパテゖに割り当てることができ 左右方向の位置合わせには TextAlignment プロパテゖを使います また TextWrapping を Wrap に指定すれば 指定された幅を超えた文字列を折り返して表示することもできます (Label には この機能はありません ) TextBlock の特徴的な機能として TextTrimming プロパテゖがあります これは指定された幅に収まり きらないテキストを で省略表示するというものです 次の図は 3 つの TextBlock に同じ文字列を Text プロパテゖに割り当て その他の条件を変えて配置したものです 最初の 2 つは Width プロパテゖを固定値 ( ここでは 150) に設定し 2 つめは TextTrimming プロパテゖを CharacterEllipsis に設定しています 3 つ目は Width プロパテゖを Auto にしています 幅の決まっている場所に文字列を表示したい場合は TextTrimming を使うと文字列が表示しきれていないことが一目でわかります 文字列全体を確認させるためには ToolTip プロパテゖに Text と同じ文字列を割り当てておくとよいでしょう これは 第 5 回で説明するデータバンデゖングを使うと便利です -6-

Label 文字列を表示するためのコントロールです ( 下図は選択状態のもので 通常 枠はありません ) 表示する文字列は Content プロパテゖに設定します 前述の TextBlock は文字列を表示するだけのコントロールですが Label では枠の色や太さ (BorderBrush BorderThickness) 枠内での水平と垂直方向での表示位置 (HorizontalContentAlignment と VerticalContentAlignment) などを設定できます あまり使われませんが Focusable プロパテゖをチェックしておけば 入力フォーカスを持つこともできます また Content プロパテゖにおいて英字の前にゕンダースコゕ (_) を置くことで ゕクセスキー ([Alt]+[ 英字 ]) を指定できます 通常 Label 自身に入力フォーカスを持たせることはなく ゕクセスキーが押されたときの入力フォーカスは Target プロパテゖで指定します Target プロパテゖの割り当てには 第 5 回で説明するデータバンデゖングという仕組みを使いますが ここでは手順のみを説明します まず Label と対象となるコントロールを配置します Label コントロールの Content プロパテゖに指定する文字列は どこかにゕンダースコゕ (_) と英字の組み合わせを入れておきます たとえば _File とすれば File というラベルに フゔル(_F) とすれば フゔル(F) というラベルになります この Label コントロールのプロパテゖウゖンドウで Target プロパテゖを探します ここで右側の バンド中... という部分をクリックすると バンデゖングを指定するドロップダウンが表示されます ソース エリゕで ElementName と対象となるコントロール名を選びます ゕプリケーションを実行すると 最初は下線が表示されていませんが [Alt] を押すと表示されます ここ で [Alt]+[F] のように入力すれば 対象として指定したコントロールに入力フォーカスが移ります -7-

Image メージ ( 画像 ) を表示するためのコントロールです 表示するメージは Source プロパテゖで指定します メージデータは プロジェクトに取り込まれ たものでも 外部のメージフゔルでもかまいませんが ここでは既存のメージフゔルをプロジェ クトに取り込んで表示する例を紹介します ツールボックスで Image を選んでウゖンドウに配置します プロパテゖウゖンドウで Source プロパテ ゖの右側の [...] ボタンをクリックし メージの選択 ダゕログを表示します 画像を選んで [ 開く ] ボタンを押すと その画像がリソースとしてプロジェクトに取り込まれます 取り込むメージはプロジェクトの直下ではなく Images フォルダーに格納されます Image コントロ ールを使わない場合でも あらかじめ Images フォルダーを作って取り込むようにしてください -8-

取り込んだメージは 配置されている Image コントロールの大きさに合わせて拡大 縮小されます こ れは Stretch プロパテゖが Fill になっているためです Stretch に指定する値は次の中から選べます Stretch プロパティ None Fill Uniform UniformToFill 意味画像を拡大 縮小しない Image コントロールの大きさに合わせて拡大 縮小する縦横の比率を変えずに 画像がコントロールに収まるよう拡大 縮小する縦横の比率を変えずに 画像の縦または横が収まるように拡大 縮小する Image コントロール自身の大きさを表示する画像に合わせる場合は Width と Height プロパテゖを削除 します これは Auto を設定するのと同じです Image コントロールは BMP GIF ICO JPG PNG WDP(HDP) TIFF 形式のフゔルを扱えます また Visual Studio 2010 には ゕプリケーションでよく使われる汎用的な画像をメージラブラリとして提供しています ( これは Express Edition には含まれていません ) メージラブラリは \Program Files\Microsoft Visual Studio 10.0\Common7\VS2010ImageLibrary\1041 フォルダーに VS2010ImageLibrary.zip という圧縮フゔルとして用意されているので 必要な場合には適当なフォルダーに展開して使います Visual Studio や Office で使われているメージも含まれており それぞれのフォルダーには解説用の html フゔルが置かれています ( 下図参照 ) -9-

CheckBox オンとオフ Yes と No True と False のように 2 つの値を切り替えるためのコントロールです チェックボックスに表示する内容は Content プロパテゖに指定します チェックされているかどうかは IsChecked プロパテゖで判断しますが これは True と False 以外に null も設定できます これは たとえば はい いいえ 該当しない Yes No 無効 といった 3 値の切り替えが必要な場合に使います マウスクリックで 3 値を切り替えるためには IsThreeState プロパテゖをチェックしておきます ベントハンドラーでは IsChecked プロパテゖは bool 型ではなく bool? 型 ( Visual Basic では Boolean? 型 ) になることに注意してください RadioButton 複数の選択肢の中から 1 つを選ぶときに使うコントロールです ラジオボタンもチェックボックスと同じように表示する内容を Content プロパテゖで指定します ラジオボタンでは マウスでクリックしたものが有効 ( チェックされた状態 ) になり それ以外のラジオボタンは無効 ( チェックされていない状態 ) になります ラジオボタンには GroupName というプロパテゖがあり 同じカテゴリーのラジオボタンに同じ名前を指定することで 1 つのウゖンドウの中で目的別のラジオボタンを使い分けることができます GroupName を指定されていないラジオボタンは ウゖンドウの中で共通のものとみなされます GroupName="MyTime" GroupName="MyColor" -10-

ListBox 長方形の領域の中に表示されている複数の項目の中から 1 つの項目を選ぶためのコントロールです リストボックスに追加する項目は Items プロパテゖで設定します プロパテゖウゖンドウで Items を探 し 右側の [...] ボタンをクリックすると 下図のようなコレクションエデゖターが表示されます ここで [ 追加 ] ボタンをクリックして 項目 (ListBoxItem) を追加していきます 右側は項目ごとのプロパテゖを編集する場所となっており 共通 カテゴリーにある Content プロパテゖで表示する文字列を指定できます たとえば 3 つの項目を追加して それぞれの Content プロパテゖと Foreground プロパテゖをともに Blue Red Green とすると 以下の図のようなリストボックスになります 項目リスト (Items) は プログラムで追加したり 削除したりできます また リストボックスのどの 項目が選択されているかということは SelectedIndex( 位置 未選択の時は -1) や SelectedItem などで 参照できます SelectionMode を Multiple や Extended にすると複数の項目を選択できるようになります -11-

ComboBox 長方形の領域の中に表示されている複数の項目の中から 1 つの項目を選ぶためのコントロールです コンボボックスは 前述のリストボックスと同じように Items プロパテゖを使って項目を設定しておきま すが この項目はウゖンドウ上には表示されていません コントロールの右側にある下向きの をクリッ クしたときにドロップダウン形式で項目リストが表示され そこから選ぶことができます コンボボックスは 選択肢の中から 1 つの項目を選ぶという点で ラジオボタンに似ています ラジオボタンに比べて プログラムで項目リストの変更することが容易にできること ラジオボタンよりも狭い場所しか使わないこと 項目を選ぶために いったんクリックしてドロップダウンする必要があるといった違いがあります このため 性別 ( 男 女 ) や元号 ( 明治 大正 昭和 平成 ) のように選択肢が少ない場合にはラジオボタンを 生まれた月 (1~12) や日 (1~31) 都道府県(47 個 ) のように選択肢が多い場合には ComboBox を使うとよいでしょう 項目を追加する方法はリストボックスと同じですが コンボボックスは文字列入力を受け付ける機能もあります IsEditable プロパテゖをチェックすると ボタンのように表示されていた部分が入力ボックスのようになり 実行時にはドロップダウンリストから選ぶだけでなく 新たな文字列を入力できます 次の図は 前述のリストボックスと同じ項目を追加して IsEditable をチェックして実行した様子です IsEditable をチェックして さらに IsReadOnly プロパテゖをチェックすると 入力ボックスは読み取り 専用になり 編集できなくなります この場合でも ドロップダウンリストから選択した項目について 範囲選択してクリップボードにコピーすることができます -12-

Menu ウゖンドウにメニューバーを追加するためのコントロールです メニューバーは通常 ウゖンドウのタトルバーのすぐ下に配置します これには第 2 回で学んだレゕ ウトパネルを使うのが便利です たとえば Grid で行分割し 最初の行に配置することができます あ るいは DockPanel に配置して DockPanel.Dock="Top" 属性を指定することもできます メニュー項目は Items プロパテゖで設定します プロパテゖウゖンドウで Items を探し 右側の [...] ボタンをクリックすると 次のようなコレクションエデゖターが表示されます ここで MenuItem を追加すると トップレベルのメニュー項目が追加されます それぞれの項目に表示する文字列は右側の Header プロパテゖで指定します 各メニュー項目に対応するプルダウンは それぞれの MenuItem 項目に対する Items プロパテゖで指定します このときは [ 項目の選択 ] で Separator を選ぶことで 区切り線 を追加できます さらに Items プロパテゖを使って サブメニューを追加できます 具体的なメニューの追加手順については後述します -13-

XAML を使ってコントロールを配置するコントロールによっては WPF デザナーだけでは使いにくいものがありますが この場合は XAML という記述言語を使います ここでは このようなコントロールの例として ToolBar と StatusBar を取り上げます ToolBar ウゖンドウにツールバーを追加するためのコントロールです ツールバーは 主にゕコン ( メージ ) を使った比較的小さなボタンを並べたもので メニューよりも すばやく機能を呼び出せます ツールバーは ToolBar コントロール上にボタンやコンボボックスなどの コントロールを配置することで実装しますが この操作は WPF デザナーではサポートされていません ToolBar コントロールは単独でも使えますが 通常は複数の ToolBar を ToolBarTray コントロール上に配置します ツールバーに配置するボタンには前述の Button コントロールを使えます ToggleButton( 切り替え式のボタン ) というチェックボックスのように機能するボタンもよく使われます Button コントロールには 文字列だけでなくメージも表示できますが これも XAML を使って記述する必要があります 新しい WPF ゕプリケーションを作成して (WPF デザナーではなく )XAML エデゖターを開きます こ こで <Grid>~</Grid> を以下の <DockPanel>~</DockPanel> で置き換えます <Window <DockPanel> <ToolBarTray DockPanel.Dock="Top"> <ToolBar> <Button Name="btnCut"><Image Source="images/CutHS.png" /></Button> <Button Name="btnCopy"><Image Source="images/CopyHS.png" /></Button> <Button Name="btnPaste"><Image Source="images/PasteHS.png" /></Button> </ToolBar> <ToolBar> <ToggleButton Name="btnBold"> 太字 </ToggleButton> <ToggleButton Name="btnItalic"> 斜体 </ToggleButton> <ToggleButton Name="btnUnderline"> 下線 </ToggleButton> </ToolBar> </ToolBarTray> <TextBox DockPanel.Dock="Top" TextWrapping="Wrap"> </TextBox> </DockPanel> </Window> -14-

XAML(eXtensible Application Markup Language) は XML(eXtensible Markup Language) を元にした記述言語で < タグ名 >~</ タグ名 > でユーザーンターフェスの要素を定義します これまで WPF デザナーで編集していたものも その背後では XAML コードに変換されていました この例では DockPanel の中に ToolBarTray と Grid が配置され さらに ToolBarTray の中に 2 つの ToolBar が配置され 最初の ToolBar には 3 つの Button が配置され それぞれに Image コントロールが含まれています 2 番目の ToolBar には 3 つの ToggleButton が配置されています 図で示すと次のようになります この例では 前述の Image コントロールで説明したメージラブラリを使っています 具体的には VS2010ImageLibrary.zip の "Actions\png_format\Office and VS" フォルダーにある CutHS.png CopyHS.png PasteHS.png を Images フォルダーに取り込んでいます ( メージラブラリは Express Edition には含まれていません ) WPF デザナー ([ デザン ] タブ ) に切り替えると 次のように表示されます -15-

XAML を使って配置したコントロールも WPF デザナーに切り替えれば コントロールをダブルクリッ クしてベントハンドラーを定義したり プロパテゖウゖンドウでプロパテゖを設定したりできます メージを載せた Button コントロールを選ぶときには注意してください そのままクリックすると Button ではなく Image コントロールを選んでしまうかもしれません どのコントロールを選んでいるかは プロパテゖウゖンドウのタトルの下で判断できます Image < 名前なし > のように表示されていれば Image コントロールが Button btncut のように表示されていれば Button コントロールが選ばれています Image を選んでいるときでも [Esc] キーを押せば それを配置しているコントロール つまり Button コントロールに選択が移動します 同じように [Esc] を押すたびに ToolBar ToolBarTray DockPanel Window と下の階層にあるコントロールに選択が移動していきます コントロールを確実に選択するためには ドキュメントゕウトランを使うこともできます ドキュメン トゕウトランは 下図のようにコントロールの配置されている様子が階層化されて表示されており こ こで目的のコントロールを選ぶと プロパテゖウゖンドウに そのコントロールの情報が表示されます ここで btncut( ハサミのメージを置いてあるボタン ) を選んでください プロパテゖウゖンドウで このボタンの Command プロパテゖを探し 右側の下向き を押すと ここで使えるコマンドの一覧がドロップダウンリストとして表示されます ここでは Cut を選びます 同じように btncopy の Command プロパテゖには Copy を btnpaste の Command プロパテゖには Paste を選んでください( コマンドについては第 4 回で説明します ) このプロジェクトを実行して 文字列を入力してください 左側の 3 つのボタンによって 切り取り コ ピー 貼り付け といった操作が機能することがわかります ( 右側の 3 つのボタンは機能しません ) -16-

StatusBar ウゖンドウにステータスバーを追加するためのコントロールです StatusBar コントロールは プロパテゖウゖンドウで Items プロパテゖの右側にある [...] ボタンを押 すことで StatusBarItem という項目表示用のコントロールを追加できます また XAML を使うことで ToolBar と同じく StatusBar にもさまざまなコントロールを配置できます 前述のツールバーで作成したゕプリケーションで <ToolBarTray> の記述の後 <TextBox> の記述の前 に 次のように <StatusBar> の記述を追加します </ToolBarTray> <StatusBar DockPanel.Dock="Bottom"> <StatusBarItem Name="statusDate" Content="(date)" /> <Separator /> <ComboBox Name="comboZoom" Width="70"> <ComboBoxItem Content="75%" /> <ComboBoxItem Content="100%" /> <ComboBoxItem Content="150%" /> </ComboBox> <Separator /> <StatusBarItem Name="statusMessage" Content="message" /> </StatusBar> <TextBox DockPanel.Dock="Top" TextWrapping="Wrap"></TextBox> </DockPanel> </Window> これにより 上図のようなステータスバーを追加できます いったんウゖンドウに追加すると WPF デザナーで配置したコントロールのプロパテゖを操作できます ツールバーやステータスバーに配置したコントロールも レゕウトパネルに配置する場合と同じようにプロパテゖを設定したり ベントハンドラーを割り当てたりできます -17-

レイアウトとコントロール 第 2 回で学んだレゕウトとコントロールの配置には さまざまな設定があります 多くのコントロール は 配置される位置や大きさを調整するために以下のプロパテゖを持っています プロパティ意味 Width コントロールの幅 数値または Auto 既定値は Auto Height コントロールの高さ 数値または Auto 既定値は Auto Margin 領域とコントロールの間隔 単独の数値で一括指定するか 左 上 右 下の順に個別設定 既定値は すべて 0 Padding コントロールと表示コンテンツの間隔 単独の数値で一括指定するか 左 上 右 下を個別設定 既定値は すべて 0 HorizontalAlignment 領域中でコントロールを左右どちらに調整するか Left Center Right Stretch のいずれか 既定値は Stretch VerticalAlignment 領域中でコントロールを上下どちらに調整するか Top Center Bottom Stretch のいずれか 既定値は Stretch HorizontalContentAlignment コントロール中でコンテンツを左右どちらに調整するか Left Center Right Stretch のいずれか 既定値は Left VerticalContentAlignment コントロール中でコンテンツを上下どちらに調整するか Top Center Bottom Stretch のいずれか 既定値は Top 既定値は標準的なコントロールの場合です 領域とコントロール およびこれらのプロパテゖの関係を以下の図に示します -18-

この図で薄い緑色で塗られている部分が領域の中に配置するコントロール さらに Content で示されている部分がコントロール上に表示する内容です Button や CheckBox では 表示する内容を Content プロパテゖで設定します 前述の ToolBar の例で示した通り XAML で記述することで Content には文字列だけでなく 他のコントロールを配置することもできます ( レゕウトパネルを含みます ) これらのプロパテゖが影響を受けやすいのは Grid レゕウトです Grid では 列の幅や行の高さのそれぞれについて固定 可変 ( 加重平均 ) 自動調整という設定があるためです Canvas レゕウトでは 領域の大きさが存在しないため HorizontalAlignment や VerticalAlignment が意味を持ちません StackPanel や WrapPanel では並べる方向 ( 縦または横 WrapPanel は両方 ) の高さや幅は必要な最小値が使われます 通常 これらの設定が問題になることはありませんが ウゖンドウのサズ変更に合わせて領域のサズも自動的に調整されるように設定している場合には注意が必要です たとえば Grid レゕウトを使うときに TextBox の Width プロパテゖと この TextBox を配置している列の幅の両方を Auto に設定すると 文字を入力するたびに TextBox の幅が広がってしまいます まとめ今回は ユーザーンターフェスを作成するための さまざまなコントロールについて学習しました 実際のゕプリケーションでは ユーザーンターフェスだけでなく どのように動作させるかといったロジックをプログラミングする必要もあります 次回は ユーザーンターフェスとロジックを連動させるためのベントについて学んでいきます -19-