Bring WinUI app to feature/visual parity with WPF, fix drag-and-drop and branding assets
- Restyle Fluent controls (buttons, fields, dialogs, ListView) to match the app's navy dark/light palette and consistent corner radii/sizing - Fix ContentDialog (Settings, exit-confirm, error) styling by binding PrimaryButtonStyle/CloseButtonStyle explicitly via new DialogHelper, since ContentDialog ignores implicit Button styles and forces accent color onto whichever button is DefaultButton - Remove MicaBackdrop and theme the title bar directly so it no longer shows a gray tint mismatched with the app's navy background - Replace placeholder Assets/*.png (unused VS template art) with the real AmiReel logo at all required tile/splash/store sizes - Set explicit default window size (1280x860, matching the old WPF app) with DPI-aware centering and a minimum size, instead of sizing to content - Fix drag-and-drop silently failing: InputList_Drop needs a DragOperationDeferral before the first await or the DataView is torn down before GetStorageItemsAsync completes - Add Preview player path setting (was present in WPF, missing in WinUI) and error handling for preview playback - Accept all ffmpeg-readable video formats (mp4, mov, mkv, webm, ...) for file picker and drag-and-drop, not just .avi - Add exit-confirmation dialog to WinUI, mirroring the WPF app Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+23
-11
@@ -25,16 +25,17 @@
|
||||
<StackPanel Spacing="12">
|
||||
<TextBlock Text="Source recordings" Style="{StaticResource SectionTitleStyle}" />
|
||||
<StackPanel Orientation="Horizontal" Spacing="10">
|
||||
<Button Content="Add AVI files..." Click="AddInputs_Click" />
|
||||
<Button Content="Add video files..." Click="AddInputs_Click" />
|
||||
<Button Content="Clear" Click="ClearInputs_Click" />
|
||||
</StackPanel>
|
||||
<ListView x:Name="InputList"
|
||||
Height="120"
|
||||
Height="130"
|
||||
SelectionMode="Single"
|
||||
SelectionChanged="InputList_SelectionChanged"
|
||||
AllowDrop="True"
|
||||
DragOver="InputList_DragOver"
|
||||
Drop="InputList_Drop" />
|
||||
Drop="InputList_Drop"
|
||||
ToolTipService.ToolTip="Drag and drop video files here to add them" />
|
||||
<Button x:Name="PreviewSourceButton"
|
||||
Content="Preview selected"
|
||||
Click="PreviewSource_Click"
|
||||
@@ -59,13 +60,13 @@
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<TextBox x:Name="EndCardBox" Grid.Row="0" MinHeight="48" />
|
||||
<TextBox x:Name="EndCardBox" Grid.Row="0" MinHeight="40" />
|
||||
<Button Grid.Row="0" Grid.Column="1" Content="Browse..." Click="BrowseEndCard_Click" VerticalAlignment="Stretch" MinWidth="120" />
|
||||
|
||||
<TextBox x:Name="OutputFolderBox" Grid.Row="1" MinHeight="48" />
|
||||
<TextBox x:Name="OutputFolderBox" Grid.Row="1" MinHeight="40" />
|
||||
<Button Grid.Row="1" Grid.Column="1" Content="Browse..." Click="BrowseOutput_Click" VerticalAlignment="Stretch" MinWidth="120" />
|
||||
|
||||
<TextBox x:Name="OutputNameBox" Grid.Row="2" Grid.ColumnSpan="2" MinHeight="48" />
|
||||
<TextBox x:Name="OutputNameBox" Grid.Row="2" Grid.ColumnSpan="2" MinHeight="40" />
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
@@ -75,10 +76,10 @@
|
||||
<StackPanel Spacing="12">
|
||||
<TextBlock Text="Render progress" Style="{StaticResource SectionTitleStyle}" />
|
||||
<StackPanel Orientation="Horizontal" Spacing="6">
|
||||
<TextBlock x:Name="StageText" Text="Ready" FontSize="18" FontWeight="SemiBold" />
|
||||
<TextBlock x:Name="PercentText" Text="0%" FontSize="18" FontWeight="SemiBold" Foreground="{ThemeResource AccentBrush}" />
|
||||
<TextBlock x:Name="StageText" Text="Ready" FontSize="15" FontWeight="SemiBold" />
|
||||
<TextBlock x:Name="PercentText" Text="0%" FontSize="15" FontWeight="SemiBold" Foreground="{ThemeResource AccentBrush}" />
|
||||
</StackPanel>
|
||||
<ProgressBar x:Name="RenderProgressBar" Minimum="0" Maximum="100" Height="10" />
|
||||
<ProgressBar x:Name="RenderProgressBar" Minimum="0" Maximum="100" Height="8" />
|
||||
<TextBlock x:Name="StatusText" Text="Select the recordings and start the render. The end card is optional." TextWrapping="WrapWholeWords" Style="{StaticResource MutedTextStyle}" />
|
||||
</StackPanel>
|
||||
</Border>
|
||||
@@ -111,7 +112,8 @@
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Grid.Column="1" Orientation="Horizontal" Spacing="10">
|
||||
<Button x:Name="OpenSettingsButton" Content="Settings" Click="OpenSettings_Click" />
|
||||
<Button x:Name="OpenSettingsButton" Content="" FontFamily="Segoe Fluent Icons, Segoe MDL2 Assets"
|
||||
Click="OpenSettings_Click" Style="{StaticResource IconButtonStyle}" ToolTipService.ToolTip="Settings" />
|
||||
<Button x:Name="CancelButton" Content="Cancel" Click="Cancel_Click" IsEnabled="False" />
|
||||
<Button x:Name="RenderButton" Content="Start render" Click="Render_Click" Style="{StaticResource PrimaryButtonStyle}" />
|
||||
</StackPanel>
|
||||
@@ -121,7 +123,14 @@
|
||||
Title="Settings"
|
||||
PrimaryButtonText="Done"
|
||||
CloseButtonText="Close"
|
||||
DefaultButton="Primary">
|
||||
DefaultButton="Primary"
|
||||
Background="{ThemeResource PanelBrush}"
|
||||
Foreground="{ThemeResource TextBrush}"
|
||||
BorderBrush="{ThemeResource HeroBorderBrush}"
|
||||
BorderThickness="1.5"
|
||||
CornerRadius="18"
|
||||
PrimaryButtonStyle="{StaticResource DialogPrimaryButtonStyle}"
|
||||
CloseButtonStyle="{StaticResource DialogCloseButtonStyle}">
|
||||
<ScrollViewer MaxHeight="560" VerticalScrollBarVisibility="Auto">
|
||||
<StackPanel Spacing="16">
|
||||
<Border Padding="14" Background="{ThemeResource PanelAltBrush}" BorderBrush="{ThemeResource BorderBrush}" BorderThickness="1" CornerRadius="12">
|
||||
@@ -190,11 +199,14 @@
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<TextBox x:Name="FfmpegPathBox" Grid.Row="0" Header="ffmpeg.exe path" />
|
||||
<Button Grid.Row="0" Grid.Column="1" Content="Browse..." Click="BrowseFfmpeg_Click" VerticalAlignment="Bottom" />
|
||||
<TextBox x:Name="FfprobePathBox" Grid.Row="1" Header="ffprobe.exe path" />
|
||||
<Button Grid.Row="1" Grid.Column="1" Content="Browse..." Click="BrowseFfprobe_Click" VerticalAlignment="Bottom" />
|
||||
<TextBox x:Name="PreviewPlayerPathBox" Grid.Row="2" Header="Preview player path (optional, e.g. mpv.exe)" />
|
||||
<Button Grid.Row="2" Grid.Column="1" Content="Browse..." Click="BrowsePreviewPlayer_Click" VerticalAlignment="Bottom" />
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
Reference in New Issue
Block a user