Compare commits

...

2 commits

Author SHA1 Message Date
dtrentin
2bf108905c Merge branch 'v0.3.1-theming' into v0.4-opcua 2026-07-22 07:47:25 +02:00
dtrentin
ec6bc2f06f fix: config screen uses full window width (v0.3.1)
MachineConfigView was two left-pinned cards (MaxWidth 480/640, HAlign Left)
stacked in a DockPanel — right half of wide window empty, items list capped at
320px. Now root Grid Auto,*,Auto: header top, footer (validation + Save/Cancel)
bottom full-width, body Grid Auto,* — fixed 380px form left, data-items card
stretches to fill width + height (scrollable). Layout only; no binding/VM/command
change. Dashboard/Detail already fill correctly — untouched.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-22 07:47:13 +02:00

View file

@ -8,29 +8,19 @@
x:DataType="vm:MachineConfigViewModel"
x:CompileBindings="True">
<DockPanel Margin="20">
<!-- header / body / footer -->
<Grid Margin="20" RowDefinitions="Auto,*,Auto">
<!-- Header -->
<TextBlock DockPanel.Dock="Top" Classes="h1"
<TextBlock Grid.Row="0" Classes="h1"
Text="{Binding Title}"
Margin="0,0,0,16" />
<!-- Action bar -->
<StackPanel DockPanel.Dock="Bottom" Orientation="Horizontal" Spacing="12" Margin="0,16,0,0">
<Button Classes="accent" Content="Save" Command="{Binding SaveCommand}" IsDefault="True" />
<Button Content="Cancel" Command="{Binding CancelCommand}" />
</StackPanel>
<!-- Inline validation hint -->
<TextBlock DockPanel.Dock="Bottom"
Text="{Binding ValidationError}"
IsVisible="{Binding HasValidationError}"
Foreground="{DynamicResource DangerBrush}"
TextWrapping="Wrap"
Margin="0,12,0,0" />
<!-- Body: fixed form column + stretching data-items column -->
<Grid Grid.Row="1" ColumnDefinitions="Auto,*">
<!-- Form -->
<Border DockPanel.Dock="Top" Classes="card" MaxWidth="480" HorizontalAlignment="Left">
<Border Grid.Column="0" Classes="card" Width="380" VerticalAlignment="Top">
<StackPanel Spacing="12">
<StackPanel Spacing="4">
@ -59,8 +49,8 @@
</StackPanel>
</Border>
<!-- Data items to monitor (fills remaining space) -->
<Border Classes="card" Margin="0,16,0,0" MaxWidth="640" HorizontalAlignment="Left">
<!-- Data items to monitor (fills remaining width + height) -->
<Border Grid.Column="1" Classes="card" Margin="16,0,0,0" HorizontalAlignment="Stretch">
<DockPanel>
<TextBlock DockPanel.Dock="Top" Classes="h2" Text="Data items to monitor"
@ -99,8 +89,8 @@
</Grid>
</Border>
<!-- Scrollable checklist -->
<ScrollViewer MaxHeight="320">
<!-- Scrollable checklist (fills remaining height) -->
<ScrollViewer>
<ItemsControl ItemsSource="{Binding AvailableItems}">
<ItemsControl.ItemTemplate>
<DataTemplate x:DataType="vm:SelectableDataItemViewModel">
@ -123,5 +113,23 @@
</DockPanel>
</Border>
</DockPanel>
</Grid>
<!-- Footer: validation hint + action bar, full width -->
<StackPanel Grid.Row="2" Spacing="0">
<!-- Inline validation hint -->
<TextBlock Text="{Binding ValidationError}"
IsVisible="{Binding HasValidationError}"
Foreground="{DynamicResource DangerBrush}"
TextWrapping="Wrap"
Margin="0,12,0,0" />
<!-- Action bar -->
<StackPanel Orientation="Horizontal" Spacing="12" Margin="0,16,0,0">
<Button Classes="accent" Content="Save" Command="{Binding SaveCommand}" IsDefault="True" />
<Button Content="Cancel" Command="{Binding CancelCommand}" />
</StackPanel>
</StackPanel>
</Grid>
</UserControl>