バージョン

xamDialogWindow コントロールの動作

xamDialogWindow™ コントロールの動作には次のような制約や特徴があります。

  • xamDialogWindow コントロールはそのコンテナーの外側に移動できません。

  • xamDialogWindow コントロールはそのコンテナーより大きいサイズにリサイズできません。

  • エンドユーザーが xamDialogWindow コントロールを最大化すると、コントロールはコンテナー一杯に最大化します。そのコンテナーが動的なサイズ変更に対応したものである場合、コンテナーのサイズを変更すると、それに伴って xamDialogWindow コントロールのサイズも変化し、コンテナー内で最大化した状態を維持しつづけます。

  • xamDialogWindow コントロールがフォーカスを取得できるのは同じコンテナーのその他のダイアログ ウィンドウのみです。

xamDialogWindow コントロールの Canvas.Top、Canvas.Left、Grid.Row、Grid.Column といった添付プロパティを設定すると、望ましくない動作が発生します。ダイアログ ウィンドウをコンテナーに制限したい場合、ダイアログを含むコンテナーで添付プロパティを設定する必要があります。

以下のコードは、グリッド パネルの 2 番目の列と 2 番目の行にダイアログ ウィンドウを制限する方法を示します。

XAML の場合:

<Grid x:Name="LayoutRoot" Background="White" ShowGridLines="True">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="100"></ColumnDefinition>
        <ColumnDefinition></ColumnDefinition>
        <ColumnDefinition Width="400"></ColumnDefinition>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition></RowDefinition>
        <RowDefinition Height="200"></RowDefinition>
        <RowDefinition Height="50"></RowDefinition>
    </Grid.RowDefinitions>
    <Border Grid.Column="1" Grid.Row="1"
        BorderBrush="Black" BorderThickness="2">
        <ig:XamDialogWindow x:Name="Dialog1" Header="Dialog1">
        </ig:XamDialogWindow>
    </Border>
</Grid>

同じコンテナーに制限されたダイアログ ウィンドウを複数持つことも可能です。これはコンテナー内でもうひとつのパネルを使用することによって実行できます。

次のコードは、これを実現する方法を示しています。

XAML の場合:

<Grid x:Name="LayoutRoot" Background="White" ShowGridLines="True">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="100"></ColumnDefinition>
        <ColumnDefinition ></ColumnDefinition>
        <ColumnDefinition Width="400"></ColumnDefinition>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition></RowDefinition>
        <RowDefinition Height="200"></RowDefinition>
        <RowDefinition Height="50"></RowDefinition>
    </Grid.RowDefinitions>
    <Border Grid.Column="1" Grid.Row="1" BorderBrush="Black"
        BorderThickness="2">
        <Grid>
            <ig:XamDialogWindow x:Name="Dialog1">
            </ig:XamDialogWindow>
            <ig:XamDialogWindow x:Name="Dialog2">
            </ig:XamDialogWindow>
        </Grid>
    </Border>
</Grid>