ユーザーコントロールに基づいてウィンドウに情報を表示するアプリケーションがあります。ボタンをクリックすると、次の行にユーザーコントロールを追加し、別のスキルに加入してそのスキル情報を取得できます。あなたはこれを何度でもやることができます。ウィンドウの幅に基づいてWPFグリッドレイアウトを調整する方法を探しています
私はウィンドウが一定のサイズの幅に達すると、すべての行セルが列セルになり、列セルが行セルになり、現在のように整列するのではなく、ウィンドウがどのようにサイズ調整されるか。
私が尋ねていることが既に存在するかどうか、あるいはこれを行うグリッド以外に何かがあるかどうかはわかりません。私はより良い何を意味するか説明する
スクリーンショット: これは、それはこの私は幅ものXAMLを追加することは十分に小さい
を取得するときに変換autoにそれを好むだろうか、私の図である今ある方法ですユーザーコントロール:あなたの正確なレイアウトのニーズに応じて、コメントとして
<Grid Loaded="DisplayNumber_Loaded" MaxWidth="540" MaxHeight="40">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid Grid.Column="0">
<Button HorizontalAlignment="Center" VerticalAlignment="Center" x:Name="AgentWindow" Click="AgentWindow_Click">
<TextBlock x:Name="button" Text="agent"/>
<Button.ContextMenu>
<ContextMenu>
<MenuItem Header="Open Full Agent List" Click="MenuItem_Click"/>
<MenuItem Header="Open Aux Only" Click="MenuItem_Click_1"/>
</ContextMenu>
</Button.ContextMenu>
</Button>
</Grid>
<Grid Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock TextWrapping="Wrap" Grid.Row="0" x:Name="TeamNameText" VerticalAlignment="Bottom" HorizontalAlignment="Center" Foreground="White" Text="Team Name"/>
<TextBlock Grid.Row="1" x:Name="SkillNum" HorizontalAlignment="Center" Foreground="White" Text="Skill Number" VerticalAlignment="Top" FontSize="15"/>
</Grid>
<Grid Grid.Column="2">
<Image Margin="5, 5, 5, 5" x:Name="CallImage" VerticalAlignment="Center" HorizontalAlignment="Center" />
</Grid>
<Grid Grid.Column="3">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Bottom" Grid.Row="0" Grid.ColumnSpan="2" x:Name="WaitTimeText" Text="Wait Time"/>
<TextBlock Foreground="White" VerticalAlignment="Top" HorizontalAlignment="Center" Grid.Row="1" Grid.Column="0" FontSize="15" x:Name="AgentAvailableData" Text="Available Number"/>
<TextBlock Foreground="White" VerticalAlignment="Top" HorizontalAlignment="Center" Grid.Row="1" Grid.Column="1" FontSize="12" x:Name="WaitTimeData" Text="Wait Time"/>
</Grid>
<Grid Grid.Column="4">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
</Grid>
<TextBlock Grid.Column="4" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" x:Name="HotSeat" Text="HotSeat" MouseDown="HotSeat_MouseDown" MouseLeave="HotSeat_MouseLeave"/>
</Grid>
あなたには、いくつかのコードを提供し、少し例WHで説明できます:
DockPanel
とレイアウト変更とツールバーDockPanel.Dock
プロパティを交互に内側の主な内容*「すべての行セルは列セルになり、列セルは行セルになります」という意味です。 – grek40「WrapPanel」や「UniformGrid」が必要なのかもしれませんが、現在提供している詳細情報のレベルでは、お待たせして申し訳ありません。 – grek40
私が対処しなければならない問題があった。私はいくつかのスクリーンショットを追加しました。また、これを表示するユーザーコントロールのxamlを追加しました。現在は – mrcavanaugh09