チュートリアル : 絶対配置に基づくレイアウトの構築

絶対配置とは、親要素を基準とした位置を指定して子要素を配置することをいいます。 たとえば、コントロールをパネル上に配置する場合は、パネルを基準としてコントロールの左端および上端の座標を指定します。 詳細については、「絶対配置と動的配置によるレイアウト」を参照してください。

WPF Designer for Visual Studio には、絶対配置をサポートする Canvas パネル コントロールが用意されています。 Canvas を使用すると、要素をアプリケーション内の絶対位置に配置できます。

重要

可能な限り動的なレイアウトを使用することをお勧めします。 動的レイアウトは、最も柔軟性が高く、ローカリゼーションなどのコンテンツの変更に適応でき、エンド ユーザーのユーザー環境に対する制御レベルも最も高くなります。 動的なレイアウトの例については、「チュートリアル : WPF デザイナーによるサイズ変更可能なアプリケーションの作成」および「チュートリアル : 動的レイアウトの構築」を参照してください。

このチュートリアルでは次のタスクを行います。

  • WPF アプリケーションを作成する。

  • アプリケーションに Canvas パネル コントロールを追加する。

  • パネルにコントロールを追加する。

  • レイアウトをテストする。

最終的なアプリケーションを次の図に示します。

絶対配置に基づいたレイアウト

注意

実際に画面に表示されるダイアログ ボックスとメニュー コマンドは、アクティブな設定またはエディションによっては、ヘルプの説明と異なる場合があります。 設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。 詳細については、「設定の操作」を参照してください。

必須コンポーネント

このチュートリアルを実行するには、次のコンポーネントが必要です。

  • Visual Studio 2010

プロジェクトの作成

まず、アプリケーションのプロジェクトを作成します。

プロジェクトを作成するには

  1. Visual Basic または Visual C# で AbsoluteLayout という名前の新しい WPF アプリケーション プロジェクトを作成します。 詳細については、「方法 : 新しい WPF アプリケーション プロジェクトを作成する」を参照してください。

    注意

    このチュートリアルではコードは作成しません。 プロジェクト用に選択した言語がアプリケーションの分離コード ページで使用される言語となります。

    WPF デザイナーで MainWindow.xaml が開きます。

  2. デザイン ビューでウィンドウを選択します。 詳細については、「方法 : デザイン画面上で要素を選択して移動する」を参照してください。

  3. [プロパティ] ウィンドウで、Window に対して次のプロパティを設定します。

    プロパティ

    Width

    400

    Height

    200

    ヒント

    サイズ変更ハンドルを使用して、デザイン ビューでウィンドウのサイズを変更することもできます。

  4. (省略可能) ウィンドウのサイズをロックするには、次のいずれかの方法を使用します。

    1. [プロパティ] ウィンドウで、Window に対して次のプロパティを設定します。

      プロパティ

      ResizeMode

      NoResize

    2. [プロパティ] ウィンドウで、Window に対して次のプロパティを設定します。

      プロパティ

      MinWidth

      400

      MinHeight

      200

      MaxWidth

      400

      MaxHeight

      200

  5. [ファイル] メニューの [すべてを保存] をクリックします。

パネル コントロールの追加

既定では、新しい WPF アプリケーションには Grid パネルが配置された Window が含まれています。 絶対配置に基づくレイアウトを作成するためには、Canvas パネルを使用する必要があります。 この手順では、既定の Grid を削除し、Canvas を追加します。

パネル コントロールを追加するには

  1. デザイン ビューでグリッドを選択します。

  2. Del キーを押して Grid を削除します。

  3. [ツールボックス][コントロール] グループから Canvas コントロールを Window にドラッグします。

  4. [プロパティ] ウィンドウで、Canvas の Height プロパティを Auto に設定します。

    CanvasWindow の高さに合わせて引き伸ばされます。

  5. [プロパティ] ウィンドウで、Canvas の Width プロパティを Auto に設定します。

    CanvasWindow の幅に合わせて引き伸ばされます。

  6. [ファイル] メニューの [すべてを保存] をクリックします。

パネルへのコントロールの追加

次に、パネルにコントロールを追加し、Canvas の添付プロパティである LeftTop を使用してコントロールを絶対位置に配置します。

パネルにコントロールを追加するには

  1. [ツールボックス][共通] グループから Label コントロールを Canvas にドラッグします。

  2. [プロパティ] ウィンドウで、Label に対して次のプロパティを設定します。

    プロパティ

    Content

    Name:

    Canvas.Left

    20

    Canvas.Top

    20

    Width

    120

    Height

    23

  3. [ツールボックス][共通] グループから Label コントロールを Canvas にドラッグします。

  4. [プロパティ] ウィンドウで、Label に対して次のプロパティを設定します。

    プロパティ

    Content

    Password:

    Canvas.Left

    20

    Canvas.Top

    60

    Width

    120

    Height

    23

  5. [ツールボックス][共通] グループから TextBox コントロールを Canvas にドラッグします。

  6. [プロパティ] ウィンドウで、TextBox に対して次のプロパティを設定します。

    プロパティ

    Canvas.Left

    160

    Canvas.Top

    20

    Width

    200

    Height

    23

  7. [ツールボックス][共通] グループから TextBox コントロールを Canvas にドラッグします。

  8. [プロパティ] ウィンドウで、TextBox に対して次のプロパティを設定します。

    プロパティ

    Canvas.Left

    160

    Canvas.Top

    60

    Width

    200

    Height

    23

  9. [ツールボックス][共通] グループから Button コントロールを Canvas にドラッグします。

  10. [プロパティ] ウィンドウで、Button に対して次のプロパティを設定します。

    プロパティ

    Content

    OK

    Canvas.Left

    196

    Canvas.Top

    120

    Width

    75

    Height

    23

  11. [ツールボックス][共通] グループから Button コントロールを Canvas にドラッグします。

  12. [プロパティ] ウィンドウで、Button に対して次のプロパティを設定します。

    プロパティ

    Content

    Cancel

    Canvas.Left

    283

    Canvas.Top

    120

    Width

    75

    Height

    23

  13. [ファイル] メニューの [すべてを保存] をクリックします。

レイアウトのテスト

最後に、アプリケーションを実行し、コントロールが絶対配置に従っていることを確認します。

レイアウトをテストするには

  1. (省略可能) 前の手順でウィンドウのサイズをロックした場合、この手順を実行するためには、ロックを解除する必要があります。 [プロパティ] ウィンドウで、Window に対して次のプロパティを設定します。

    プロパティ

    MinWidth

    0

    MinHeight

    0

    MaxWidth

    Infinity

    MaxHeight

    Infinity

    ResizeMode

    CanResize

  2. [デバッグ] メニューの [デバッグ開始] をクリックします。

    アプリケーションが起動し、ウィンドウが表示されます。

  3. ウィンドウのサイズを変更します。

    コントロールは絶対配置に従い、サイズや位置が変更されません。

  4. ウィンドウを閉じます。

チュートリアルの完了

完成した MainWindow.xaml ファイルを次に示します。

<Window x:Class="MainWindow"
    xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="200" Width="400" ResizeMode="CanResize" Name="MainWindow" MinWidth="0" MinHeight="0" MaxWidth="Infinity" MaxHeight="Infinity">
    <Canvas Height="Auto" Name="Canvas1" Width="Auto">
        <Label Canvas.Left="20" Canvas.Top="20" Height="23" Width="120" Name="Label1">Name:</Label>
        <Label Canvas.Left="20" Canvas.Top="60" Height="23" Width="120" Name="Label2">Password:</Label>
        <TextBox Canvas.Left="160" Canvas.Top="20" Height="23" Width="200" Name="TextBox1" />
        <TextBox Canvas.Left="160" Canvas.Top="60" Height="23" Width="200" Name="TextBox2" />
        <Button Canvas.Left="196" Canvas.Top="120" Height="23" Width="75" Name="Button1">OK</Button>
        <Button Canvas.Left="283" Canvas.Top="120" Height="23" Width="75" Name="Button2">Cancel</Button>
    </Canvas>
</Window>

参照

処理手順

方法 : 絶対配置に基づくレイアウトを構築する

概念

WPF デザイナーでの整列

レイアウト システム

WPF および Silverlight デザイナーの概要

その他の技術情報

レイアウトのチュートリアル