fix(dock): add min-size constraints and improve code readability

This commit is contained in:
2026-03-28 13:28:47 +09:00
parent 8d49dba2f1
commit c0116d5409

View File

@@ -187,12 +187,20 @@ public sealed partial class DockLayout : Control
if (isHorizontal) if (isHorizontal)
{ {
grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }); grid.ColumnDefinitions.Add(new ColumnDefinition
{
Width = new GridLength(1, GridUnitType.Star),
MinWidth = 100
});
Grid.SetColumn((FrameworkElement)childUI, i * 2); Grid.SetColumn((FrameworkElement)childUI, i * 2);
} }
else else
{ {
grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) }); grid.RowDefinitions.Add(new RowDefinition
{
Height = new GridLength(1, GridUnitType.Star),
MinHeight = 100
});
Grid.SetRow((FrameworkElement)childUI, i * 2); Grid.SetRow((FrameworkElement)childUI, i * 2);
} }
@@ -204,14 +212,24 @@ public sealed partial class DockLayout : Control
if (isHorizontal) if (isHorizontal)
{ {
grid.ColumnDefinitions.Add(new ColumnDefinition { Width = GridLength.Auto }); grid.ColumnDefinitions.Add(new ColumnDefinition { Width = GridLength.Auto });
var splitter = new CommunityToolkit.WinUI.Controls.GridSplitter { Width = 4, HorizontalAlignment = HorizontalAlignment.Center, ResizeDirection = CommunityToolkit.WinUI.Controls.GridSplitter.GridResizeDirection.Columns }; var splitter = new CommunityToolkit.WinUI.Controls.GridSplitter
{
Width = 4,
HorizontalAlignment = HorizontalAlignment.Center,
ResizeDirection = CommunityToolkit.WinUI.Controls.GridSplitter.GridResizeDirection.Columns
};
Grid.SetColumn(splitter, (i * 2) + 1); Grid.SetColumn(splitter, (i * 2) + 1);
grid.Children.Add(splitter); grid.Children.Add(splitter);
} }
else else
{ {
grid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto }); grid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto });
var splitter = new CommunityToolkit.WinUI.Controls.GridSplitter { Height = 4, VerticalAlignment = VerticalAlignment.Center, ResizeDirection = CommunityToolkit.WinUI.Controls.GridSplitter.GridResizeDirection.Rows }; var splitter = new CommunityToolkit.WinUI.Controls.GridSplitter
{
Height = 4,
VerticalAlignment = VerticalAlignment.Center,
ResizeDirection = CommunityToolkit.WinUI.Controls.GridSplitter.GridResizeDirection.Rows
};
Grid.SetRow(splitter, (i * 2) + 1); Grid.SetRow(splitter, (i * 2) + 1);
grid.Children.Add(splitter); grid.Children.Add(splitter);
} }