コンテンツ コントロールの描画
コンテンツ コントロールには、そのコントロールに表示される内容を定義するコンテンツ プロパティが 1 つあります。コンテンツ プロパティは、テキスト文字列のように単純な場合も、Microsoft .NET Framework オブジェクトのように複雑な場合もあります。コンテンツ コントロールにレイアウト パネル コントロールを追加すると、そのパネル コントロールがコンテンツとなり、そこに複数の子オブジェクトを追加できます。そのため、コンテンツ オブジェクトのプロパティが 1 つだけであるという制約に対処できます。
次に、コンテンツ コントロール ([Button]) を作成し、そのコンテンツ プロパティをレイアウト パネル ([StackPanel]) に設定する手順を説明します。この手順は、MSDN の「ContentControl 型」の「型」一覧にある他のコンテンツ コントロールにも当てはまります。
コンテンツ コントロールを作成するには
Microsoft Expression Blend アプリケーション ウィンドウの左側にある [ツール] パネルで、[アセット]
をクリックします。[アセット] パネルの [コントロール] カテゴリで、一覧から [Button]
を選択します。
[アセット] ボタンの下に、[Button] コントロールのアイコンが選択された状態で表示され、アートボードに [Button] を追加できるようになります。
ヒント :
よく使用するユーザー インターフェイス (UI) の要素 ([Button] コントロールなど) は、すばやく追加できるように、[アセット] ボタンの下のドロップダウン リストに表示されます。
アートボードにボタンを追加するには、[Button] コントロールの [ツール] パネル アイコンをダブルクリックします。[Button] コントロールの既定のコンテンツは、"Button" という文字列です。
既定のサイズと場所 (左上) でアートボード上に作成された [Button] オブジェクト
ヒント :
アートボードにコントロールを追加するには、[ツール] パネルでコントロールを選択してアートボードをクリックし、マウスをドラッグしてコントロールの境界ボックスを描く方法もあります。
ヒント :
アートボードに追加した ([Button] コントロールなどの) UI デザイン要素は、アプリケーションのオブジェクトになります。
[アセット] パネルの [コントロール] カテゴリにある [パネル] で、一覧から [StackPanel]
を選択します。[StackPanel] コントロールのアイコンをダブルクリックすると、このコントロールがアートボードに追加されます。
[オブジェクトとタイムライン] パネルで、[StackPanel] オブジェクトを [Button] オブジェクトの上にドラッグします。
[Button] オブジェクトのコンテンツ文字列が、この [StackPanel] で置換されます。これを確認するには、[オブジェクトとタイムライン] パネルで [Button ] を選択し、[プロパティ] パネルの [共通プロパティ] カテゴリにある [Content] プロパティを表示します。
アートボード上の [Button] 内の子オブジェクトとして追加された [StackPanel] オブジェクト
[StackPanel] の高さと幅は 100 で、これが既定のサイズです。最小の高さと幅は 0 です。StackPanel を扱いやすくするには、まず、[オブジェクトとタイムライン] パネルで [StackPanel] を選択します。次に、[プロパティ] パネルの [レイアウト] カテゴリにある [Width] を 150 ピクセルに、[Height] を 75 ピクセルに変更します (ピクセルとはデバイスに依存しない単位であり、約 1/96 インチです)。
ヒント :
アートボード上のオブジェクトのサイズを変更する別の方法として、境界ボックスの四隅にあるガイドをドラッグすることもできます。
子要素 ([StackPanel] オブジェクト) のサイズを変更すると、自動的に親のボタンのサイズも変更されるようにするには、[Button] オブジェクトを選択し、[プロパティ] パネルの [レイアウト] カテゴリで、[Width] プロパティと [Height] プロパティを [自動] に設定します。
[オブジェクトとタイムライン] パネルで [StackPanel] を選択したままの状態で、[プロパティ] パネルの [レイアウト] カテゴリにある [Orientation] プロパティを [Horizontal] に設定します。これにより、[StackPanel] の子オブジェクトが水平方向に配置されるようになります。
[オブジェクトとタイムライン] パネルで [StackPanel] オブジェクトをクリックしてアクティブにし、子オブジェクトを追加できるようにします。
ヒント :
大半の UI 要素とは異なり、一部のレイアウト パネル (StackPanel や Grid など) には複数の子オブジェクトを含めることができます。この機能は、アプリケーション デザインを編成し、レイアウトするときに便利です。詳細については、「オブジェクトの配置」を参照してください。
[ツール] パネルの [楕円]
を選択し、アートボードにある [StackPanel] 内に円を描画します。次に、[ツール] パネルの [TextBox]
を選択し、[StackPanel] 内にテキスト ボックスを描画します。親の [StackPanel] オブジェクトを水平方向に設定したので、これらの子オブジェクトは左から右に配置されます。子オブジェクト同士の間隔を広げるには、[プロパティ] パネルの [レイアウト] カテゴリで各オブジェクトの [Margin] プロパティを調整します。
StackPanel オブジェクトに追加された子オブジェクト
F5 キーを押してプロジェクトをビルドし、作成されたアプリケーションを確認します。