ui: WPF layout, accessibility, and performance improvements

This commit is contained in:
2026-04-16 02:50:11 +01:00
parent 2903035d8c
commit 1de957f73e
3 changed files with 295 additions and 150 deletions

View File

@@ -59,6 +59,14 @@
</EventTrigger> </EventTrigger>
</Style.Triggers> </Style.Triggers>
</Style> </Style>
<!-- Shared style for tab header icon -->
<Style x:Key="TabHeaderIcon" TargetType="iconPacks:PackIconMaterial">
<Setter Property="Width" Value="15"/>
<Setter Property="Height" Value="15"/>
<Setter Property="Margin" Value="0,0,7,0"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>
</mah:MetroWindow.Resources> </mah:MetroWindow.Resources>
<Grid> <Grid>
@@ -93,8 +101,8 @@
<TabItem x:Name="NewListingTab" Style="{StaticResource AppTabItem}"> <TabItem x:Name="NewListingTab" Style="{StaticResource AppTabItem}">
<TabItem.Header> <TabItem.Header>
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<iconPacks:PackIconMaterial Kind="CameraPlus" Width="15" Height="15" <iconPacks:PackIconMaterial Kind="CameraPlus"
Margin="0,0,7,0" VerticalAlignment="Center"/> Style="{StaticResource TabHeaderIcon}"/>
<TextBlock Text="New Listing" VerticalAlignment="Center"/> <TextBlock Text="New Listing" VerticalAlignment="Center"/>
</StackPanel> </StackPanel>
</TabItem.Header> </TabItem.Header>
@@ -106,6 +114,7 @@
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" MaxWidth="340"> <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" MaxWidth="340">
<Border Width="72" Height="72" CornerRadius="36" <Border Width="72" Height="72" CornerRadius="36"
HorizontalAlignment="Center" Margin="0,0,0,18"> HorizontalAlignment="Center" Margin="0,0,0,18">
<Border.Background> <Border.Background>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,1"> <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
<GradientStop Color="#7C3AED" Offset="0"/> <GradientStop Color="#7C3AED" Offset="0"/>
@@ -115,7 +124,8 @@
<iconPacks:PackIconMaterial Kind="CartOutline" Width="32" Height="32" <iconPacks:PackIconMaterial Kind="CartOutline" Width="32" Height="32"
Foreground="White" Foreground="White"
HorizontalAlignment="Center" HorizontalAlignment="Center"
VerticalAlignment="Center"/> VerticalAlignment="Center"
/>
</Border> </Border>
<TextBlock Text="Connect to eBay" FontSize="20" FontWeight="Bold" <TextBlock Text="Connect to eBay" FontSize="20" FontWeight="Bold"
HorizontalAlignment="Center" HorizontalAlignment="Center"
@@ -127,7 +137,8 @@
Margin="0,0,0,24"/> Margin="0,0,0,24"/>
<Button x:Name="ConnectBtn" Click="ConnectBtn_Click" <Button x:Name="ConnectBtn" Click="ConnectBtn_Click"
Style="{StaticResource LockConnectButton}" Style="{StaticResource LockConnectButton}"
HorizontalAlignment="Center"> HorizontalAlignment="Center"
AutomationProperties.Name="Connect to eBay account">
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<iconPacks:PackIconMaterial Kind="Link" Width="14" Height="14" <iconPacks:PackIconMaterial Kind="Link" Width="14" Height="14"
Margin="0,0,7,0" VerticalAlignment="Center"/> Margin="0,0,7,0" VerticalAlignment="Center"/>
@@ -143,8 +154,8 @@
<TabItem x:Name="DraftsTab" Style="{StaticResource AppTabItem}"> <TabItem x:Name="DraftsTab" Style="{StaticResource AppTabItem}">
<TabItem.Header> <TabItem.Header>
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<iconPacks:PackIconMaterial Kind="BookmarkMultiple" Width="15" Height="15" <iconPacks:PackIconMaterial Kind="BookmarkMultiple"
Margin="0,0,7,0" VerticalAlignment="Center"/> Style="{StaticResource TabHeaderIcon}"/>
<TextBlock Text="Drafts" VerticalAlignment="Center"/> <TextBlock Text="Drafts" VerticalAlignment="Center"/>
</StackPanel> </StackPanel>
</TabItem.Header> </TabItem.Header>
@@ -166,7 +177,8 @@
<iconPacks:PackIconMaterial Kind="AlertCircleOutline" <iconPacks:PackIconMaterial Kind="AlertCircleOutline"
Width="12" Height="12" Margin="0,0,5,0" Width="12" Height="12" Margin="0,0,5,0"
VerticalAlignment="Center" VerticalAlignment="Center"
Foreground="{DynamicResource MahApps.Brushes.Gray5}"/> Foreground="{DynamicResource MahApps.Brushes.Gray5}"
/>
<TextBlock x:Name="StatusBar" Text="Ready" FontSize="11" <TextBlock x:Name="StatusBar" Text="Ready" FontSize="11"
Foreground="{DynamicResource MahApps.Brushes.Gray5}" Foreground="{DynamicResource MahApps.Brushes.Gray5}"
VerticalAlignment="Center"/> VerticalAlignment="Center"/>
@@ -181,7 +193,8 @@
<Button x:Name="DisconnectBtn" Click="DisconnectBtn_Click" <Button x:Name="DisconnectBtn" Click="DisconnectBtn_Click"
Visibility="Collapsed" Visibility="Collapsed"
Style="{StaticResource MahApps.Styles.Button.Square}" Style="{StaticResource MahApps.Styles.Button.Square}"
Padding="6,2" Margin="8,0,0,0" FontSize="10"> Padding="6,2" Margin="8,0,0,0" FontSize="10"
AutomationProperties.Name="Disconnect from eBay">
<TextBlock Text="Disconnect"/> <TextBlock Text="Disconnect"/>
</Button> </Button>
</StackPanel> </StackPanel>

View File

@@ -1,17 +1,69 @@
<UserControl x:Class="EbayListingTool.Views.NewListingView" <UserControl x:Class="EbayListingTool.Views.NewListingView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls" xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks" xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
Loaded="UserControl_Loaded"> Loaded="UserControl_Loaded"
KeyboardNavigation.TabNavigation="Cycle">
<UserControl.Resources>
<!-- Shared style for AI action buttons (Title AI, Desc AI, Price Research) -->
<Style x:Key="AiActionButton" TargetType="Button"
BasedOn="{StaticResource MahApps.Styles.Button.Square}">
<Setter Property="Padding" Value="6,2"/>
</Style>
<!-- Shared style for field labels -->
<Style x:Key="FieldLabel" TargetType="TextBlock">
<Setter Property="FontSize" Value="13"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="Foreground" Value="{DynamicResource MahApps.Brushes.Gray3}"/>
</Style>
<!-- Shared style for section headers (PHOTOS, LISTING DETAILS) -->
<Style x:Key="SectionHeader" TargetType="TextBlock">
<Setter Property="FontSize" Value="12"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="Foreground" Value="{DynamicResource MahApps.Brushes.Gray5}"/>
</Style>
<!-- Shared style for subtitle/hint text -->
<Style x:Key="HintText" TargetType="TextBlock">
<Setter Property="FontSize" Value="13"/>
<Setter Property="Foreground" Value="{DynamicResource MahApps.Brushes.Gray5}"/>
</Style>
<!-- Shared style for character count labels -->
<Style x:Key="CharCountLabel" TargetType="TextBlock">
<Setter Property="FontSize" Value="12"/>
<Setter Property="Margin" Value="6,0,0,0"/>
<Setter Property="Foreground" Value="{DynamicResource MahApps.Brushes.Gray5}"/>
</Style>
<!-- Shared style for progress track background -->
<Style x:Key="ProgressTrack" TargetType="Border">
<Setter Property="Height" Value="3"/>
<Setter Property="CornerRadius" Value="1.5"/>
<Setter Property="Background" Value="{DynamicResource MahApps.Brushes.Gray8}"/>
</Style>
<!-- Shared style for progress track fill -->
<Style x:Key="ProgressFill" TargetType="Border">
<Setter Property="Height" Value="3"/>
<Setter Property="CornerRadius" Value="1.5"/>
<Setter Property="HorizontalAlignment" Value="Left"/>
<Setter Property="Width" Value="0"/>
</Style>
</UserControl.Resources>
<!-- Root grid hosts all three states; Visibility toggled in code-behind --> <!-- Root grid hosts all three states; Visibility toggled in code-behind -->
<Grid> <Grid>
<!-- ══════════════════════════════════════ STATE A: Drop Zone --> <!-- STATE A: Drop Zone -->
<Grid x:Name="StateA" Visibility="Visible"> <Grid x:Name="StateA" Visibility="Visible"
FocusManager.FocusedElement="{Binding ElementName=DropZoneBorder}">
<DockPanel LastChildFill="True"> <DockPanel LastChildFill="True">
<!-- Loading panel shown while AI runs --> <!-- Loading panel - shown while AI runs -->
<Border x:Name="LoadingPanel" DockPanel.Dock="Top" <Border x:Name="LoadingPanel" DockPanel.Dock="Top"
Visibility="Collapsed" Visibility="Collapsed"
Margin="60,30,60,0" Padding="30,40" Margin="60,30,60,0" Padding="30,40"
@@ -19,15 +71,16 @@
CornerRadius="10"> CornerRadius="10">
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center"> <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
<mah:ProgressRing Width="36" Height="36" <mah:ProgressRing Width="36" Height="36"
IsTabStop="False"
HorizontalAlignment="Center" Margin="0,0,0,16"/> HorizontalAlignment="Center" Margin="0,0,0,16"/>
<TextBlock x:Name="LoadingStepText" <TextBlock x:Name="LoadingStepText"
Text="Examining the photo" Text="Examining the photo."
FontSize="14" FontWeight="SemiBold" FontSize="14" FontWeight="SemiBold"
HorizontalAlignment="Center" HorizontalAlignment="Center"
Foreground="{DynamicResource MahApps.Brushes.Gray1}"/> Foreground="{DynamicResource MahApps.Brushes.Gray1}"/>
<TextBlock Text="This usually takes 1020 seconds" <TextBlock Text="This usually takes 10-20 seconds"
FontSize="13" HorizontalAlignment="Center" Style="{StaticResource HintText}"
Foreground="{DynamicResource MahApps.Brushes.Gray5}" HorizontalAlignment="Center"
Margin="0,6,0,0"/> Margin="0,6,0,0"/>
</StackPanel> </StackPanel>
</Border> </Border>
@@ -36,34 +89,39 @@
<Border x:Name="DropZoneBorder" DockPanel.Dock="Top" <Border x:Name="DropZoneBorder" DockPanel.Dock="Top"
Margin="60,30,60,0" Margin="60,30,60,0"
AllowDrop="True" AllowDrop="True"
Focusable="True"
MouseLeftButtonUp="DropZone_Click" MouseLeftButtonUp="DropZone_Click"
DragOver="DropZone_DragOver" DragOver="DropZone_DragOver"
DragEnter="DropZone_DragEnter" DragEnter="DropZone_DragEnter"
DragLeave="DropZone_DragLeave" DragLeave="DropZone_DragLeave"
Drop="DropZone_Drop" Drop="DropZone_Drop"
Cursor="Hand" Cursor="Hand"
MinHeight="180"> MinHeight="180"
AutomationProperties.Name="Photo drop zone - drop photos here or click to browse">
<Grid> <Grid>
<!-- Dashed border via Rectangle --> <!-- Dashed border via Rectangle -->
<Rectangle x:Name="DropBorderRect" <Rectangle x:Name="DropBorderRect"
StrokeThickness="2" StrokeThickness="2"
StrokeDashArray="6,4" StrokeDashArray="6,4"
RadiusX="10" RadiusY="10" RadiusX="10" RadiusY="10"
Stroke="{DynamicResource MahApps.Brushes.Gray6}"/> Stroke="{DynamicResource MahApps.Brushes.Gray6}"
IsHitTestVisible="False"/>
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center"
Margin="0,40"> Margin="0,40"
IsHitTestVisible="False">
<iconPacks:PackIconMaterial Kind="CameraOutline" <iconPacks:PackIconMaterial Kind="CameraOutline"
Width="52" Height="52" Width="52" Height="52"
HorizontalAlignment="Center" HorizontalAlignment="Center"
Foreground="{DynamicResource MahApps.Brushes.Gray5}" Foreground="{DynamicResource MahApps.Brushes.Gray5}"
Margin="0,0,0,16"/> Margin="0,0,0,16"
IsTabStop="False"/>
<TextBlock Text="Drop photos here" <TextBlock Text="Drop photos here"
FontSize="18" FontWeight="SemiBold" FontSize="18" FontWeight="SemiBold"
HorizontalAlignment="Center" HorizontalAlignment="Center"
Foreground="{DynamicResource MahApps.Brushes.Gray2}"/> Foreground="{DynamicResource MahApps.Brushes.Gray2}"/>
<TextBlock Text="or click to browse up to 12 photos" <TextBlock Text="or click to browse - up to 12 photos"
FontSize="13" HorizontalAlignment="Center" Style="{StaticResource HintText}"
Foreground="{DynamicResource MahApps.Brushes.Gray5}" HorizontalAlignment="Center"
Margin="0,6,0,0"/> Margin="0,6,0,0"/>
</StackPanel> </StackPanel>
</Grid> </Grid>
@@ -73,6 +131,7 @@
<ScrollViewer x:Name="ThumbScroller" DockPanel.Dock="Top" <ScrollViewer x:Name="ThumbScroller" DockPanel.Dock="Top"
HorizontalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Disabled"
Focusable="False"
Margin="60,12,60,0" Visibility="Collapsed"> Margin="60,12,60,0" Visibility="Collapsed">
<StackPanel x:Name="ThumbStrip" Orientation="Horizontal"/> <StackPanel x:Name="ThumbStrip" Orientation="Horizontal"/>
</ScrollViewer> </ScrollViewer>
@@ -83,14 +142,16 @@
Click="Analyse_Click" Click="Analyse_Click"
IsEnabled="False" IsEnabled="False"
Style="{StaticResource MahApps.Styles.Button.Square.Accent}" Style="{StaticResource MahApps.Styles.Button.Square.Accent}"
Padding="28,12" FontSize="14" FontWeight="SemiBold"> Padding="28,12" FontSize="14" FontWeight="SemiBold"
AutomationProperties.Name="Identify and price item with AI">
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<iconPacks:PackIconMaterial x:Name="AnalyseIcon" <iconPacks:PackIconMaterial x:Name="AnalyseIcon"
Kind="MagnifyScan" Width="18" Height="18" Kind="MagnifyScan" Width="18" Height="18"
Margin="0,0,8,0" VerticalAlignment="Center"/> Margin="0,0,8,0" VerticalAlignment="Center"/>
<mah:ProgressRing x:Name="AnalyseSpinner" <mah:ProgressRing x:Name="AnalyseSpinner"
Width="18" Height="18" Margin="0,0,8,0" Width="18" Height="18" Margin="0,0,8,0"
Visibility="Collapsed"/> Visibility="Collapsed"
IsTabStop="False"/>
<TextBlock x:Name="AnalyseBtnText" <TextBlock x:Name="AnalyseBtnText"
Text="Identify &amp; Price with AI" Text="Identify &amp; Price with AI"
VerticalAlignment="Center"/> VerticalAlignment="Center"/>
@@ -106,11 +167,11 @@
</DockPanel> </DockPanel>
</Grid> </Grid>
<!-- ══════════════════════════════════════ STATE B: Review & Edit --> <!-- STATE B: Review & Edit -->
<Grid x:Name="StateB" Visibility="Collapsed"> <Grid x:Name="StateB" Visibility="Collapsed">
<DockPanel LastChildFill="True"> <DockPanel LastChildFill="True">
<!-- Footer bar pinned to bottom via DockPanel.Dock --> <!-- Footer bar - pinned to bottom via DockPanel.Dock -->
<Border DockPanel.Dock="Bottom" <Border DockPanel.Dock="Bottom"
Background="{DynamicResource MahApps.Brushes.Gray9}" Background="{DynamicResource MahApps.Brushes.Gray9}"
BorderThickness="0,1,0,0" BorderThickness="0,1,0,0"
@@ -125,7 +186,8 @@
Click="StartOver_Click" Click="StartOver_Click"
Background="Transparent" BorderThickness="0" Background="Transparent" BorderThickness="0"
Foreground="{DynamicResource MahApps.Brushes.Gray5}" Foreground="{DynamicResource MahApps.Brushes.Gray5}"
Cursor="Hand" VerticalAlignment="Center"> Cursor="Hand" VerticalAlignment="Center"
AutomationProperties.Name="Start over and discard edits">
<TextBlock FontSize="13"> <TextBlock FontSize="13">
<Run Text="&#8592; "/> <Run Text="&#8592; "/>
<Run Text="Start Over" TextDecorations="Underline"/> <Run Text="Start Over" TextDecorations="Underline"/>
@@ -135,7 +197,8 @@
<Button x:Name="SaveDraftBtn" <Button x:Name="SaveDraftBtn"
Click="SaveDraft_Click" Click="SaveDraft_Click"
Style="{StaticResource MahApps.Styles.Button.Square}" Style="{StaticResource MahApps.Styles.Button.Square}"
Padding="16,8" Margin="0,0,8,0"> Padding="16,8" Margin="0,0,8,0"
AutomationProperties.Name="Save listing as draft">
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<iconPacks:PackIconMaterial Kind="ContentSaveOutline" <iconPacks:PackIconMaterial Kind="ContentSaveOutline"
Width="14" Height="14" Margin="0,0,6,0" Width="14" Height="14" Margin="0,0,6,0"
@@ -146,14 +209,16 @@
<Button x:Name="PostBtn" <Button x:Name="PostBtn"
Click="Post_Click" Click="Post_Click"
Style="{StaticResource MahApps.Styles.Button.Square.Accent}" Style="{StaticResource MahApps.Styles.Button.Square.Accent}"
Padding="16,8"> Padding="16,8"
AutomationProperties.Name="Post listing to eBay">
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<iconPacks:PackIconMaterial x:Name="PostIcon" <iconPacks:PackIconMaterial x:Name="PostIcon"
Kind="CartArrowRight" Width="14" Height="14" Kind="CartArrowRight" Width="14" Height="14"
Margin="0,0,6,0" VerticalAlignment="Center"/> Margin="0,0,6,0" VerticalAlignment="Center"/>
<mah:ProgressRing x:Name="PostSpinner" <mah:ProgressRing x:Name="PostSpinner"
Width="14" Height="14" Margin="0,0,6,0" Width="14" Height="14" Margin="0,0,6,0"
Visibility="Collapsed"/> Visibility="Collapsed"
IsTabStop="False"/>
<TextBlock Text="Post to eBay" VerticalAlignment="Center"/> <TextBlock Text="Post to eBay" VerticalAlignment="Center"/>
</StackPanel> </StackPanel>
</Button> </Button>
@@ -162,9 +227,9 @@
</Border> </Border>
<!-- Two-column content area --> <!-- Two-column content area -->
<Grid DockPanel.Dock="Top" Margin="16,12,16,0"> <Grid Margin="16,12,16,0">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="220"/> <ColumnDefinition Width="220" MinWidth="160"/>
<ColumnDefinition Width="12"/> <ColumnDefinition Width="12"/>
<ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
@@ -172,13 +237,13 @@
<!-- LEFT: Photos panel --> <!-- LEFT: Photos panel -->
<DockPanel Grid.Column="0"> <DockPanel Grid.Column="0">
<TextBlock DockPanel.Dock="Top" <TextBlock DockPanel.Dock="Top"
Text="PHOTOS" FontSize="12" FontWeight="SemiBold" Text="PHOTOS" Style="{StaticResource SectionHeader}"
Foreground="{DynamicResource MahApps.Brushes.Gray5}"
Margin="0,0,0,8"/> Margin="0,0,0,8"/>
<StackPanel DockPanel.Dock="Bottom" Orientation="Horizontal" Margin="0,8,0,0"> <StackPanel DockPanel.Dock="Bottom" Orientation="Horizontal" Margin="0,8,0,0">
<Button x:Name="AddMorePhotosBtn" Click="AddMorePhotos_Click" <Button x:Name="AddMorePhotosBtn" Click="AddMorePhotos_Click"
Style="{StaticResource MahApps.Styles.Button.Square}" Style="{StaticResource MahApps.Styles.Button.Square}"
Padding="8,4" FontSize="13"> Padding="8,4" FontSize="13"
AutomationProperties.Name="Add more photos to listing">
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<iconPacks:PackIconMaterial Kind="Plus" Width="12" Height="12" <iconPacks:PackIconMaterial Kind="Plus" Width="12" Height="12"
Margin="0,0,4,0" VerticalAlignment="Center"/> Margin="0,0,4,0" VerticalAlignment="Center"/>
@@ -190,17 +255,19 @@
FontSize="13" FontSize="13"
Foreground="{DynamicResource MahApps.Brushes.Gray5}"/> Foreground="{DynamicResource MahApps.Brushes.Gray5}"/>
</StackPanel> </StackPanel>
<ScrollViewer VerticalScrollBarVisibility="Auto"> <ScrollViewer VerticalScrollBarVisibility="Auto"
Focusable="False">
<WrapPanel x:Name="BPhotosPanel"/> <WrapPanel x:Name="BPhotosPanel"/>
</ScrollViewer> </ScrollViewer>
</DockPanel> </DockPanel>
<!-- RIGHT: Listing fields --> <!-- RIGHT: Listing fields -->
<ScrollViewer Grid.Column="2" VerticalScrollBarVisibility="Auto"> <ScrollViewer Grid.Column="2" VerticalScrollBarVisibility="Auto"
<StackPanel Margin="0,0,8,16" MaxWidth="600"> Focusable="False">
<StackPanel Margin="0,0,8,16" MaxWidth="600"
KeyboardNavigation.TabNavigation="Local">
<TextBlock Text="LISTING DETAILS" <TextBlock Text="LISTING DETAILS"
FontSize="12" FontWeight="SemiBold" Style="{StaticResource SectionHeader}"
Foreground="{DynamicResource MahApps.Brushes.Gray5}"
Margin="0,0,0,12"/> Margin="0,0,0,12"/>
<!-- Title --> <!-- Title -->
@@ -209,38 +276,38 @@
<ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<TextBlock Text="Title" FontSize="13" FontWeight="SemiBold" <TextBlock x:Name="TitleLabel" Text="Title"
Foreground="{DynamicResource MahApps.Brushes.Gray3}" Style="{StaticResource FieldLabel}"
VerticalAlignment="Center"/> VerticalAlignment="Center"/>
<Button Grid.Column="1" x:Name="AiTitleBtn" Click="AiTitle_Click" <Button Grid.Column="1" x:Name="AiTitleBtn" Click="AiTitle_Click"
Style="{StaticResource MahApps.Styles.Button.Square}" Style="{StaticResource AiActionButton}"
Padding="6,2" ToolTip="Improve title with AI"> ToolTip="Improve title with AI"
AutomationProperties.Name="Improve title with AI">
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<iconPacks:PackIconMaterial x:Name="TitleAiIcon" <iconPacks:PackIconMaterial x:Name="TitleAiIcon"
Kind="AutoFix" Width="12" Height="12" Kind="AutoFix" Width="12" Height="12"
Margin="0,0,4,0" VerticalAlignment="Center"/> Margin="0,0,4,0" VerticalAlignment="Center"/>
<mah:ProgressRing x:Name="TitleSpinner" Width="12" Height="12" <mah:ProgressRing x:Name="TitleSpinner" Width="12" Height="12"
Margin="0,0,4,0" Visibility="Collapsed"/> Margin="0,0,4,0" Visibility="Collapsed"
IsTabStop="False"/>
<TextBlock Text="AI" FontSize="12" VerticalAlignment="Center"/> <TextBlock Text="AI" FontSize="12" VerticalAlignment="Center"/>
</StackPanel> </StackPanel>
</Button> </Button>
</Grid> </Grid>
<TextBox x:Name="BTitleBox" TextChanged="TitleBox_TextChanged" <TextBox x:Name="BTitleBox" TextChanged="TitleBox_TextChanged"
MaxLength="80" Margin="0,0,0,2"/> MaxLength="80" Margin="0,0,0,2"
AutomationProperties.LabeledBy="{Binding ElementName=TitleLabel}"/>
<Grid Margin="0,0,0,12"> <Grid Margin="0,0,0,12">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Border Height="3" CornerRadius="1.5" <Border Style="{StaticResource ProgressTrack}">
Background="{DynamicResource MahApps.Brushes.Gray8}"> <Border x:Name="BTitleBar" Style="{StaticResource ProgressFill}"
<Border x:Name="BTitleBar" Height="3" CornerRadius="1.5"
HorizontalAlignment="Left" Width="0"
Background="{DynamicResource MahApps.Brushes.Accent}"/> Background="{DynamicResource MahApps.Brushes.Accent}"/>
</Border> </Border>
<TextBlock x:Name="BTitleCount" Grid.Column="1" <TextBlock x:Name="BTitleCount" Grid.Column="1"
Text="0 / 80" FontSize="12" Margin="6,0,0,0" Text="0 / 80" Style="{StaticResource CharCountLabel}"/>
Foreground="{DynamicResource MahApps.Brushes.Gray5}"/>
</Grid> </Grid>
<!-- Description --> <!-- Description -->
@@ -249,18 +316,20 @@
<ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<TextBlock Text="Description" FontSize="13" FontWeight="SemiBold" <TextBlock x:Name="DescLabel" Text="Description"
Foreground="{DynamicResource MahApps.Brushes.Gray3}" Style="{StaticResource FieldLabel}"
VerticalAlignment="Center"/> VerticalAlignment="Center"/>
<Button Grid.Column="1" x:Name="AiDescBtn" Click="AiDesc_Click" <Button Grid.Column="1" x:Name="AiDescBtn" Click="AiDesc_Click"
Style="{StaticResource MahApps.Styles.Button.Square}" Style="{StaticResource AiActionButton}"
Padding="6,2" ToolTip="Write description with AI"> ToolTip="Write description with AI"
AutomationProperties.Name="Write description with AI">
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<iconPacks:PackIconMaterial x:Name="DescAiIcon" <iconPacks:PackIconMaterial x:Name="DescAiIcon"
Kind="AutoFix" Width="12" Height="12" Kind="AutoFix" Width="12" Height="12"
Margin="0,0,4,0" VerticalAlignment="Center"/> Margin="0,0,4,0" VerticalAlignment="Center"/>
<mah:ProgressRing x:Name="DescSpinner" Width="12" Height="12" <mah:ProgressRing x:Name="DescSpinner" Width="12" Height="12"
Margin="0,0,4,0" Visibility="Collapsed"/> Margin="0,0,4,0" Visibility="Collapsed"
IsTabStop="False"/>
<TextBlock Text="AI" FontSize="12" VerticalAlignment="Center"/> <TextBlock Text="AI" FontSize="12" VerticalAlignment="Center"/>
</StackPanel> </StackPanel>
</Button> </Button>
@@ -268,32 +337,31 @@
<TextBox x:Name="BDescBox" TextChanged="DescBox_TextChanged" <TextBox x:Name="BDescBox" TextChanged="DescBox_TextChanged"
AcceptsReturn="True" TextWrapping="Wrap" AcceptsReturn="True" TextWrapping="Wrap"
Height="110" VerticalScrollBarVisibility="Auto" Height="110" VerticalScrollBarVisibility="Auto"
Margin="0,0,0,2"/> Margin="0,0,0,2"
AutomationProperties.LabeledBy="{Binding ElementName=DescLabel}"/>
<Grid Margin="0,0,0,12"> <Grid Margin="0,0,0,12">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Border Height="3" CornerRadius="1.5" <Border Style="{StaticResource ProgressTrack}">
Background="{DynamicResource MahApps.Brushes.Gray8}"> <Border x:Name="BDescBar" Style="{StaticResource ProgressFill}"
<Border x:Name="BDescBar" Height="3" CornerRadius="1.5"
HorizontalAlignment="Left" Width="0"
Background="{DynamicResource MahApps.Brushes.Accent}"/> Background="{DynamicResource MahApps.Brushes.Accent}"/>
</Border> </Border>
<TextBlock x:Name="BDescCount" Grid.Column="1" <TextBlock x:Name="BDescCount" Grid.Column="1"
Text="0 / 2000" FontSize="12" Margin="6,0,0,0" Text="0 / 2000" Style="{StaticResource CharCountLabel}"/>
Foreground="{DynamicResource MahApps.Brushes.Gray5}"/>
</Grid> </Grid>
<!-- Category --> <!-- Category -->
<TextBlock Text="Category" FontSize="13" FontWeight="SemiBold" <TextBlock x:Name="CategoryLabel" Text="Category"
Foreground="{DynamicResource MahApps.Brushes.Gray3}" Style="{StaticResource FieldLabel}"
Margin="0,0,0,4"/> Margin="0,0,0,4"/>
<Grid Margin="0,0,0,2"> <Grid Margin="0,0,0,2">
<TextBox x:Name="BCategoryBox" <TextBox x:Name="BCategoryBox"
TextChanged="CategoryBox_TextChanged" TextChanged="CategoryBox_TextChanged"
KeyDown="CategoryBox_KeyDown" KeyDown="CategoryBox_KeyDown"
mah:TextBoxHelper.Watermark="Type to search categories…"/> mah:TextBoxHelper.Watermark="Type to search categories."
AutomationProperties.LabeledBy="{Binding ElementName=CategoryLabel}"/>
<ListBox x:Name="BCategoryList" <ListBox x:Name="BCategoryList"
Visibility="Collapsed" Visibility="Collapsed"
SelectionChanged="CategoryList_SelectionChanged" SelectionChanged="CategoryList_SelectionChanged"
@@ -302,7 +370,11 @@
Margin="0,32,0,0" Margin="0,32,0,0"
Panel.ZIndex="10" Panel.ZIndex="10"
Background="{DynamicResource MahApps.Brushes.Gray8}" Background="{DynamicResource MahApps.Brushes.Gray8}"
BorderBrush="{DynamicResource MahApps.Brushes.Gray6}"/> BorderBrush="{DynamicResource MahApps.Brushes.Gray6}"
VirtualizingPanel.IsVirtualizing="True"
VirtualizingPanel.VirtualizationMode="Recycling"
ScrollViewer.CanContentScroll="True"
AutomationProperties.Name="Category suggestions"/>
</Grid> </Grid>
<TextBlock x:Name="BCategoryIdLabel" <TextBlock x:Name="BCategoryIdLabel"
Text="(no category selected)" Text="(no category selected)"
@@ -317,11 +389,12 @@
<ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<StackPanel Grid.Column="0"> <StackPanel Grid.Column="0">
<TextBlock Text="Condition" FontSize="13" FontWeight="SemiBold" <TextBlock x:Name="ConditionLabel" Text="Condition"
Foreground="{DynamicResource MahApps.Brushes.Gray3}" Style="{StaticResource FieldLabel}"
Margin="0,0,0,4"/> Margin="0,0,0,4"/>
<ComboBox x:Name="BConditionBox" <ComboBox x:Name="BConditionBox"
SelectionChanged="ConditionBox_SelectionChanged"> SelectionChanged="ConditionBox_SelectionChanged"
AutomationProperties.LabeledBy="{Binding ElementName=ConditionLabel}">
<ComboBoxItem Content="New" Tag="New"/> <ComboBoxItem Content="New" Tag="New"/>
<ComboBoxItem Content="Open Box" Tag="OpenBox"/> <ComboBoxItem Content="Open Box" Tag="OpenBox"/>
<ComboBoxItem Content="Refurbished" Tag="Refurbished"/> <ComboBoxItem Content="Refurbished" Tag="Refurbished"/>
@@ -330,10 +403,11 @@
</ComboBox> </ComboBox>
</StackPanel> </StackPanel>
<StackPanel Grid.Column="2"> <StackPanel Grid.Column="2">
<TextBlock Text="Format" FontSize="13" FontWeight="SemiBold" <TextBlock x:Name="FormatLabel" Text="Format"
Foreground="{DynamicResource MahApps.Brushes.Gray3}" Style="{StaticResource FieldLabel}"
Margin="0,0,0,4"/> Margin="0,0,0,4"/>
<ComboBox x:Name="BFormatBox"> <ComboBox x:Name="BFormatBox"
AutomationProperties.LabeledBy="{Binding ElementName=FormatLabel}">
<ComboBoxItem Content="Fixed Price" IsSelected="True"/> <ComboBoxItem Content="Fixed Price" IsSelected="True"/>
<ComboBoxItem Content="Auction"/> <ComboBoxItem Content="Auction"/>
</ComboBox> </ComboBox>
@@ -346,27 +420,30 @@
<ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<TextBlock Text="Price" FontSize="13" FontWeight="SemiBold" <TextBlock x:Name="PriceLabel" Text="Price"
Foreground="{DynamicResource MahApps.Brushes.Gray3}" Style="{StaticResource FieldLabel}"
VerticalAlignment="Center"/> VerticalAlignment="Center"/>
<Button Grid.Column="1" x:Name="AiPriceBtn" Click="AiPrice_Click" <Button Grid.Column="1" x:Name="AiPriceBtn" Click="AiPrice_Click"
Style="{StaticResource MahApps.Styles.Button.Square}" Style="{StaticResource AiActionButton}"
Padding="6,2" ToolTip="Research live eBay price"> ToolTip="Research live eBay price"
AutomationProperties.Name="Research live eBay price">
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<iconPacks:PackIconMaterial x:Name="PriceAiIcon" <iconPacks:PackIconMaterial x:Name="PriceAiIcon"
Kind="Magnify" Width="12" Height="12" Kind="Magnify" Width="12" Height="12"
Margin="0,0,4,0" VerticalAlignment="Center"/> Margin="0,0,4,0" VerticalAlignment="Center"/>
<mah:ProgressRing x:Name="PriceSpinner" Width="12" Height="12" <mah:ProgressRing x:Name="PriceSpinner" Width="12" Height="12"
Margin="0,0,4,0" Visibility="Collapsed"/> Margin="0,0,4,0" Visibility="Collapsed"
IsTabStop="False"/>
<TextBlock Text="Research" FontSize="12" VerticalAlignment="Center"/> <TextBlock Text="Research" FontSize="12" VerticalAlignment="Center"/>
</StackPanel> </StackPanel>
</Button> </Button>
</Grid> </Grid>
<mah:NumericUpDown x:Name="BPriceBox" <mah:NumericUpDown x:Name="BPriceBox"
StringFormat="£{0:0.00}" StringFormat="&#x00A3;{0:0.00}"
Minimum="0" Maximum="99999" Minimum="0" Maximum="99999"
Interval="0.50" Interval="0.50"
Margin="0,0,0,4"/> Margin="0,0,0,4"
AutomationProperties.LabeledBy="{Binding ElementName=PriceLabel}"/>
<TextBlock x:Name="BPriceHint" <TextBlock x:Name="BPriceHint"
FontSize="12" Margin="0,0,0,12" FontSize="12" Margin="0,0,0,12"
Visibility="Collapsed" Visibility="Collapsed"
@@ -380,10 +457,11 @@
<ColumnDefinition Width="120"/> <ColumnDefinition Width="120"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<StackPanel Grid.Column="0"> <StackPanel Grid.Column="0">
<TextBlock Text="Postage" FontSize="13" FontWeight="SemiBold" <TextBlock x:Name="PostageLabel" Text="Postage"
Foreground="{DynamicResource MahApps.Brushes.Gray3}" Style="{StaticResource FieldLabel}"
Margin="0,0,0,4"/> Margin="0,0,0,4"/>
<ComboBox x:Name="BPostageBox"> <ComboBox x:Name="BPostageBox"
AutomationProperties.LabeledBy="{Binding ElementName=PostageLabel}">
<ComboBoxItem Content="Royal Mail 1st Class" Tag="RoyalMailFirstClass"/> <ComboBoxItem Content="Royal Mail 1st Class" Tag="RoyalMailFirstClass"/>
<ComboBoxItem Content="Royal Mail 2nd Class" Tag="RoyalMailSecondClass" IsSelected="True"/> <ComboBoxItem Content="Royal Mail 2nd Class" Tag="RoyalMailSecondClass" IsSelected="True"/>
<ComboBoxItem Content="Royal Mail Tracked 24" Tag="RoyalMailTracked24"/> <ComboBoxItem Content="Royal Mail Tracked 24" Tag="RoyalMailTracked24"/>
@@ -393,10 +471,11 @@
</ComboBox> </ComboBox>
</StackPanel> </StackPanel>
<StackPanel Grid.Column="2"> <StackPanel Grid.Column="2">
<TextBlock Text="From postcode" FontSize="13" FontWeight="SemiBold" <TextBlock x:Name="PostcodeLabel" Text="From postcode"
Foreground="{DynamicResource MahApps.Brushes.Gray3}" Style="{StaticResource FieldLabel}"
Margin="0,0,0,4"/> Margin="0,0,0,4"/>
<TextBox x:Name="BPostcodeBox"/> <TextBox x:Name="BPostcodeBox"
AutomationProperties.LabeledBy="{Binding ElementName=PostcodeLabel}"/>
</StackPanel> </StackPanel>
</Grid> </Grid>
</StackPanel> </StackPanel>
@@ -405,7 +484,7 @@
</DockPanel> </DockPanel>
</Grid> </Grid>
<!-- ═══════════════════════════════════════════════════════ STATE C: Success --> <!-- STATE C: Success -->
<Grid x:Name="StateC" Visibility="Collapsed"> <Grid x:Name="StateC" Visibility="Collapsed">
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" MaxWidth="480"> <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" MaxWidth="480">
<!-- Success banner --> <!-- Success banner -->
@@ -413,7 +492,8 @@
CornerRadius="8" Padding="24,16" Margin="0,0,0,28"> CornerRadius="8" Padding="24,16" Margin="0,0,0,28">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center"> <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<iconPacks:PackIconMaterial Kind="CheckCircleOutline" Width="24" Height="24" <iconPacks:PackIconMaterial Kind="CheckCircleOutline" Width="24" Height="24"
Foreground="#4CAF50" VerticalAlignment="Center" Margin="0,0,12,0"/> Foreground="#4CAF50" VerticalAlignment="Center" Margin="0,0,12,0"
IsTabStop="False"/>
<TextBlock Text="Listed successfully!" FontSize="18" FontWeight="SemiBold" <TextBlock Text="Listed successfully!" FontSize="18" FontWeight="SemiBold"
Foreground="#4CAF50" VerticalAlignment="Center"/> Foreground="#4CAF50" VerticalAlignment="Center"/>
</StackPanel> </StackPanel>
@@ -427,10 +507,12 @@
Foreground="{DynamicResource MahApps.Brushes.Accent}" Foreground="{DynamicResource MahApps.Brushes.Accent}"
HorizontalAlignment="Center" Cursor="Hand" TextWrapping="Wrap" HorizontalAlignment="Center" Cursor="Hand" TextWrapping="Wrap"
TextAlignment="Center" Margin="0,0,0,16" TextAlignment="Center" Margin="0,0,0,16"
MouseLeftButtonUp="SuccessUrl_Click"/> MouseLeftButtonUp="SuccessUrl_Click"
AutomationProperties.Name="Listing URL - click to open"/>
<Button x:Name="CopyUrlBtn" Click="CopyUrl_Click" <Button x:Name="CopyUrlBtn" Click="CopyUrl_Click"
Style="{StaticResource MahApps.Styles.Button.Square}" Style="{StaticResource MahApps.Styles.Button.Square}"
HorizontalAlignment="Center" Padding="16,8" Margin="0,0,0,36"> HorizontalAlignment="Center" Padding="16,8" Margin="0,0,0,36"
AutomationProperties.Name="Copy listing URL to clipboard">
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<iconPacks:PackIconMaterial Kind="ContentCopy" Width="13" Height="13" <iconPacks:PackIconMaterial Kind="ContentCopy" Width="13" Height="13"
Margin="0,0,6,0" VerticalAlignment="Center"/> Margin="0,0,6,0" VerticalAlignment="Center"/>
@@ -440,7 +522,8 @@
<!-- List Another --> <!-- List Another -->
<Button Click="ListAnother_Click" <Button Click="ListAnother_Click"
Style="{StaticResource MahApps.Styles.Button.Square.Accent}" Style="{StaticResource MahApps.Styles.Button.Square.Accent}"
HorizontalAlignment="Center" Padding="24,12" FontSize="14"> HorizontalAlignment="Center" Padding="24,12" FontSize="14"
AutomationProperties.Name="List another item">
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<iconPacks:PackIconMaterial Kind="Plus" Width="16" Height="16" <iconPacks:PackIconMaterial Kind="Plus" Width="16" Height="16"
Margin="0,0,8,0" VerticalAlignment="Center"/> Margin="0,0,8,0" VerticalAlignment="Center"/>

View File

@@ -2,7 +2,8 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls" xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"> xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
KeyboardNavigation.TabNavigation="Cycle">
<UserControl.Resources> <UserControl.Resources>
@@ -41,6 +42,22 @@
<Setter Property="Height" Value="30"/> <Setter Property="Height" Value="30"/>
</Style> </Style>
<!-- Shared style for detail action buttons -->
<Style x:Key="DetailActionButton" TargetType="Button"
BasedOn="{StaticResource MahApps.Styles.Button.Square.Accent}">
<Setter Property="Height" Value="34"/>
<Setter Property="Padding" Value="14,0"/>
<Setter Property="Margin" Value="0,0,8,6"/>
</Style>
<!-- Shared style for secondary detail action buttons -->
<Style x:Key="DetailSecondaryButton" TargetType="Button"
BasedOn="{StaticResource MahApps.Styles.Button.Square}">
<Setter Property="Height" Value="34"/>
<Setter Property="Padding" Value="12,0"/>
<Setter Property="Margin" Value="0,0,8,6"/>
</Style>
</UserControl.Resources> </UserControl.Resources>
<Grid> <Grid>
@@ -51,7 +68,7 @@
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<!-- ================================================================ <!-- ================================================================
LEFT Listings list LEFT - Listings list
================================================================ --> ================================================================ -->
<Grid Grid.Column="0"> <Grid Grid.Column="0">
<Grid.RowDefinitions> <Grid.RowDefinitions>
@@ -72,7 +89,8 @@
<StackPanel Grid.Column="0" Orientation="Horizontal"> <StackPanel Grid.Column="0" Orientation="Horizontal">
<iconPacks:PackIconMaterial Kind="BookmarkMultiple" Width="14" Height="14" <iconPacks:PackIconMaterial Kind="BookmarkMultiple" Width="14" Height="14"
Margin="0,0,7,0" VerticalAlignment="Center" Margin="0,0,7,0" VerticalAlignment="Center"
Foreground="{DynamicResource MahApps.Brushes.Accent}"/> Foreground="{DynamicResource MahApps.Brushes.Accent}"
IsTabStop="False"/>
<TextBlock x:Name="ListingCountText" Text="0 saved listings" <TextBlock x:Name="ListingCountText" Text="0 saved listings"
FontSize="12" FontWeight="SemiBold" FontSize="12" FontWeight="SemiBold"
Foreground="{DynamicResource MahApps.Brushes.Gray2}" Foreground="{DynamicResource MahApps.Brushes.Gray2}"
@@ -81,7 +99,8 @@
<Button Grid.Column="1" x:Name="OpenExportsDirBtn" <Button Grid.Column="1" x:Name="OpenExportsDirBtn"
Click="OpenExportsDir_Click" Click="OpenExportsDir_Click"
Style="{StaticResource CardActionBtn}" Style="{StaticResource CardActionBtn}"
ToolTip="Open exports folder in Explorer"> ToolTip="Open exports folder in Explorer"
AutomationProperties.Name="Open exports folder in Explorer">
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<iconPacks:PackIconMaterial Kind="FolderOpen" Width="12" Height="12" <iconPacks:PackIconMaterial Kind="FolderOpen" Width="12" Height="12"
Margin="0,0,4,0" VerticalAlignment="Center"/> Margin="0,0,4,0" VerticalAlignment="Center"/>
@@ -104,18 +123,20 @@
Width="13" Height="13" Width="13" Height="13"
Margin="0,0,7,0" Margin="0,0,7,0"
VerticalAlignment="Center" VerticalAlignment="Center"
Foreground="{DynamicResource MahApps.Brushes.Gray5}"/> Foreground="{DynamicResource MahApps.Brushes.Gray5}"
IsTabStop="False"/>
<TextBox Grid.Column="1" x:Name="SearchBox" <TextBox Grid.Column="1" x:Name="SearchBox"
Style="{StaticResource SearchBox}" Style="{StaticResource SearchBox}"
mah:TextBoxHelper.Watermark="Filter listings" mah:TextBoxHelper.Watermark="Filter listings..."
mah:TextBoxHelper.ClearTextButton="True" mah:TextBoxHelper.ClearTextButton="True"
TextChanged="SearchBox_TextChanged"/> TextChanged="SearchBox_TextChanged"
AutomationProperties.Name="Filter saved listings"/>
</Grid> </Grid>
</Border> </Border>
<!-- Card list --> <!-- Card list -->
<ScrollViewer Grid.Row="2" VerticalScrollBarVisibility="Auto" <ScrollViewer Grid.Row="2" VerticalScrollBarVisibility="Auto"
Padding="10,8"> Padding="10,8" Focusable="False">
<Grid> <Grid>
<!-- Empty state for no saved listings --> <!-- Empty state for no saved listings -->
<StackPanel x:Name="EmptyCardState" <StackPanel x:Name="EmptyCardState"
@@ -128,11 +149,13 @@
HorizontalAlignment="Center" HorizontalAlignment="Center"
Margin="0,0,0,16" Margin="0,0,0,16"
Background="{DynamicResource MahApps.Brushes.Gray9}"> Background="{DynamicResource MahApps.Brushes.Gray9}">
<iconPacks:PackIconMaterial Kind="BookmarkPlusOutline" <iconPacks:PackIconMaterial Kind="BookmarkPlusOutline"
Width="32" Height="32" Width="32" Height="32"
HorizontalAlignment="Center" HorizontalAlignment="Center"
VerticalAlignment="Center" VerticalAlignment="Center"
Foreground="{DynamicResource MahApps.Brushes.Gray5}"/> Foreground="{DynamicResource MahApps.Brushes.Gray5}"
IsTabStop="False"/>
</Border> </Border>
<TextBlock Text="No saved listings yet" <TextBlock Text="No saved listings yet"
FontSize="13" FontWeight="SemiBold" FontSize="13" FontWeight="SemiBold"
@@ -158,7 +181,8 @@
Width="36" Height="36" Width="36" Height="36"
HorizontalAlignment="Center" HorizontalAlignment="Center"
Foreground="{DynamicResource MahApps.Brushes.Gray6}" Foreground="{DynamicResource MahApps.Brushes.Gray6}"
Margin="0,0,0,12"/> Margin="0,0,0,12"
IsTabStop="False"/>
<TextBlock Text="No listings match your search" <TextBlock Text="No listings match your search"
FontSize="12" FontSize="12"
Foreground="{DynamicResource MahApps.Brushes.Gray5}" Foreground="{DynamicResource MahApps.Brushes.Gray5}"
@@ -172,10 +196,11 @@
<!-- Splitter --> <!-- Splitter -->
<GridSplitter Grid.Column="1" Width="4" HorizontalAlignment="Stretch" <GridSplitter Grid.Column="1" Width="4" HorizontalAlignment="Stretch"
Background="{DynamicResource MahApps.Brushes.Gray8}"/> Background="{DynamicResource MahApps.Brushes.Gray8}"
AutomationProperties.Name="Resize listings panel"/>
<!-- ================================================================ <!-- ================================================================
RIGHT Detail panel RIGHT - Detail panel
================================================================ --> ================================================================ -->
<Grid Grid.Column="2"> <Grid Grid.Column="2">
@@ -185,7 +210,8 @@
<iconPacks:PackIconMaterial Kind="BookmarkOutline" Width="48" Height="48" <iconPacks:PackIconMaterial Kind="BookmarkOutline" Width="48" Height="48"
HorizontalAlignment="Center" HorizontalAlignment="Center"
Foreground="{DynamicResource MahApps.Brushes.Gray7}" Foreground="{DynamicResource MahApps.Brushes.Gray7}"
Margin="0,0,0,14"/> Margin="0,0,0,14"
IsTabStop="False"/>
<TextBlock Text="Select a saved listing" FontSize="14" <TextBlock Text="Select a saved listing" FontSize="14"
Foreground="{DynamicResource MahApps.Brushes.Gray5}" Foreground="{DynamicResource MahApps.Brushes.Gray5}"
HorizontalAlignment="Center"/> HorizontalAlignment="Center"/>
@@ -193,7 +219,8 @@
<!-- Detail content --> <!-- Detail content -->
<ScrollViewer x:Name="DetailPanel" Visibility="Collapsed" Opacity="0" <ScrollViewer x:Name="DetailPanel" Visibility="Collapsed" Opacity="0"
VerticalScrollBarVisibility="Auto" Padding="18,14"> VerticalScrollBarVisibility="Auto" Padding="18,14"
Focusable="False">
<StackPanel> <StackPanel>
<!-- Title + price row --> <!-- Title + price row -->
@@ -219,7 +246,8 @@
<Button x:Name="RevalueBtn" Click="RevalueBtn_Click" <Button x:Name="RevalueBtn" Click="RevalueBtn_Click"
Height="28" Padding="8,0" Margin="6,0,0,0" Height="28" Padding="8,0" Margin="6,0,0,0"
Style="{DynamicResource MahApps.Styles.Button.Square}" Style="{DynamicResource MahApps.Styles.Button.Square}"
ToolTip="Quick-change the price"> ToolTip="Quick-change the price"
AutomationProperties.Name="Quick-change the price">
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<iconPacks:PackIconMaterial Kind="CurrencyGbp" Width="11" Height="11" <iconPacks:PackIconMaterial Kind="CurrencyGbp" Width="11" Height="11"
Margin="0,0,4,0" VerticalAlignment="Center"/> Margin="0,0,4,0" VerticalAlignment="Center"/>
@@ -235,11 +263,13 @@
<mah:NumericUpDown x:Name="RevaluePrice" <mah:NumericUpDown x:Name="RevaluePrice"
Minimum="0" Maximum="99999" Minimum="0" Maximum="99999"
StringFormat="F2" Interval="0.5" StringFormat="F2" Interval="0.5"
Width="110" Height="30"/> Width="110" Height="30"
AutomationProperties.Name="New price value"/>
<Button x:Name="CheckEbayBtn" Click="CheckEbayBtn_Click" <Button x:Name="CheckEbayBtn" Click="CheckEbayBtn_Click"
Height="30" Padding="8,0" Margin="6,0,4,0" Height="30" Padding="8,0" Margin="6,0,4,0"
Style="{DynamicResource MahApps.Styles.Button.Square}" Style="{DynamicResource MahApps.Styles.Button.Square}"
ToolTip="Check eBay for a suggested price"> ToolTip="Check eBay for a suggested price"
AutomationProperties.Name="Check eBay for suggested price">
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<iconPacks:PackIconMaterial x:Name="CheckEbayIcon" <iconPacks:PackIconMaterial x:Name="CheckEbayIcon"
Kind="Magnify" Width="11" Height="11" Kind="Magnify" Width="11" Height="11"
@@ -251,13 +281,15 @@
<Button Click="RevalueSave_Click" <Button Click="RevalueSave_Click"
Style="{DynamicResource MahApps.Styles.Button.Square.Accent}" Style="{DynamicResource MahApps.Styles.Button.Square.Accent}"
Height="30" Padding="10,0" Margin="0,0,4,0" Height="30" Padding="10,0" Margin="0,0,4,0"
ToolTip="Save new price"> ToolTip="Save new price"
AutomationProperties.Name="Save new price">
<iconPacks:PackIconMaterial Kind="Check" Width="13" Height="13"/> <iconPacks:PackIconMaterial Kind="Check" Width="13" Height="13"/>
</Button> </Button>
<Button Click="RevalueCancel_Click" <Button Click="RevalueCancel_Click"
Style="{DynamicResource MahApps.Styles.Button.Square}" Style="{DynamicResource MahApps.Styles.Button.Square}"
Height="30" Padding="8,0" Height="30" Padding="8,0"
ToolTip="Cancel"> ToolTip="Cancel"
AutomationProperties.Name="Cancel price change">
<iconPacks:PackIconMaterial Kind="Close" Width="11" Height="11"/> <iconPacks:PackIconMaterial Kind="Close" Width="11" Height="11"/>
</Button> </Button>
</StackPanel> </StackPanel>
@@ -270,20 +302,22 @@
</StackPanel> </StackPanel>
</Grid> </Grid>
<!-- Meta row: category · date --> <!-- Meta row: category / date -->
<StackPanel Orientation="Horizontal" Margin="0,0,0,14"> <StackPanel Orientation="Horizontal" Margin="0,0,0,14">
<iconPacks:PackIconMaterial Kind="Tag" Width="11" Height="11" <iconPacks:PackIconMaterial Kind="Tag" Width="11" Height="11"
Margin="0,0,4,0" VerticalAlignment="Center" Margin="0,0,4,0" VerticalAlignment="Center"
Foreground="{DynamicResource MahApps.Brushes.Gray5}"/> Foreground="{DynamicResource MahApps.Brushes.Gray5}"
IsTabStop="False"/>
<TextBlock x:Name="DetailCategory" FontSize="11" <TextBlock x:Name="DetailCategory" FontSize="11"
Foreground="{DynamicResource MahApps.Brushes.Gray4}" Foreground="{DynamicResource MahApps.Brushes.Gray4}"
VerticalAlignment="Center"/> VerticalAlignment="Center"/>
<TextBlock Text=" · " FontSize="11" <TextBlock Text=" | " FontSize="11"
Foreground="{DynamicResource MahApps.Brushes.Gray6}" Foreground="{DynamicResource MahApps.Brushes.Gray6}"
VerticalAlignment="Center"/> VerticalAlignment="Center"/>
<iconPacks:PackIconMaterial Kind="ClockOutline" Width="11" Height="11" <iconPacks:PackIconMaterial Kind="ClockOutline" Width="11" Height="11"
Margin="0,0,4,0" VerticalAlignment="Center" Margin="0,0,4,0" VerticalAlignment="Center"
Foreground="{DynamicResource MahApps.Brushes.Gray5}"/> Foreground="{DynamicResource MahApps.Brushes.Gray5}"
IsTabStop="False"/>
<TextBlock x:Name="DetailDate" FontSize="11" <TextBlock x:Name="DetailDate" FontSize="11"
Foreground="{DynamicResource MahApps.Brushes.Gray4}" Foreground="{DynamicResource MahApps.Brushes.Gray4}"
VerticalAlignment="Center"/> VerticalAlignment="Center"/>
@@ -293,6 +327,7 @@
<TextBlock Text="PHOTOS" Style="{StaticResource DetailLabel}"/> <TextBlock Text="PHOTOS" Style="{StaticResource DetailLabel}"/>
<ScrollViewer HorizontalScrollBarVisibility="Auto" <ScrollViewer HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Disabled"
Focusable="False"
Margin="0,0,0,4"> Margin="0,0,0,4">
<WrapPanel x:Name="DetailPhotosPanel" Orientation="Horizontal"/> <WrapPanel x:Name="DetailPhotosPanel" Orientation="Horizontal"/>
</ScrollViewer> </ScrollViewer>
@@ -320,22 +355,23 @@
<WrapPanel Orientation="Horizontal"> <WrapPanel Orientation="Horizontal">
<Button x:Name="PostDraftBtn" <Button x:Name="PostDraftBtn"
Click="PostDraft_Click" Click="PostDraft_Click"
Style="{StaticResource MahApps.Styles.Button.Square.Accent}" Style="{StaticResource DetailActionButton}"
Height="34" Padding="14,0" Margin="0,0,8,6" ToolTip="Post this draft to eBay"
ToolTip="Post this draft to eBay"> AutomationProperties.Name="Post draft to eBay">
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<iconPacks:PackIconMaterial x:Name="PostDraftIcon" <iconPacks:PackIconMaterial x:Name="PostDraftIcon"
Kind="CartArrowRight" Width="14" Height="14" Kind="CartArrowRight" Width="14" Height="14"
Margin="0,0,6,0" VerticalAlignment="Center"/> Margin="0,0,6,0" VerticalAlignment="Center"/>
<mah:ProgressRing x:Name="PostDraftSpinner" <mah:ProgressRing x:Name="PostDraftSpinner"
Width="14" Height="14" Margin="0,0,6,0" Width="14" Height="14" Margin="0,0,6,0"
Visibility="Collapsed"/> Visibility="Collapsed"
IsTabStop="False"/>
<TextBlock Text="Post to eBay" VerticalAlignment="Center"/> <TextBlock Text="Post to eBay" VerticalAlignment="Center"/>
</StackPanel> </StackPanel>
</Button> </Button>
<Button Click="EditListing_Click" <Button Click="EditListing_Click"
Style="{DynamicResource MahApps.Styles.Button.Square.Accent}" Style="{StaticResource DetailActionButton}"
Height="34" Padding="14,0" Margin="0,0,8,6"> AutomationProperties.Name="Edit this listing">
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<iconPacks:PackIconMaterial Kind="Pencil" Width="13" Height="13" <iconPacks:PackIconMaterial Kind="Pencil" Width="13" Height="13"
Margin="0,0,6,0" VerticalAlignment="Center"/> Margin="0,0,6,0" VerticalAlignment="Center"/>
@@ -343,8 +379,8 @@
</StackPanel> </StackPanel>
</Button> </Button>
<Button Click="OpenFolderDetail_Click" <Button Click="OpenFolderDetail_Click"
Style="{DynamicResource MahApps.Styles.Button.Square.Accent}" Style="{StaticResource DetailActionButton}"
Height="34" Padding="14,0" Margin="0,0,8,6"> AutomationProperties.Name="Open export folder for this listing">
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<iconPacks:PackIconMaterial Kind="FolderOpen" Width="13" Height="13" <iconPacks:PackIconMaterial Kind="FolderOpen" Width="13" Height="13"
Margin="0,0,6,0" VerticalAlignment="Center"/> Margin="0,0,6,0" VerticalAlignment="Center"/>
@@ -352,8 +388,8 @@
</StackPanel> </StackPanel>
</Button> </Button>
<Button Click="CopyTitle_Click" <Button Click="CopyTitle_Click"
Style="{DynamicResource MahApps.Styles.Button.Square}" Style="{StaticResource DetailSecondaryButton}"
Height="34" Padding="12,0" Margin="0,0,8,6"> AutomationProperties.Name="Copy listing title to clipboard">
<Button.Content> <Button.Content>
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<iconPacks:PackIconMaterial Kind="ContentCopy" Width="12" Height="12" <iconPacks:PackIconMaterial Kind="ContentCopy" Width="12" Height="12"
@@ -363,8 +399,8 @@
</Button.Content> </Button.Content>
</Button> </Button>
<Button Click="CopyDescription_Click" <Button Click="CopyDescription_Click"
Style="{DynamicResource MahApps.Styles.Button.Square}" Style="{StaticResource DetailSecondaryButton}"
Height="34" Padding="12,0" Margin="0,0,8,6"> AutomationProperties.Name="Copy listing description to clipboard">
<Button.Content> <Button.Content>
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<iconPacks:PackIconMaterial Kind="ContentCopy" Width="12" Height="12" <iconPacks:PackIconMaterial Kind="ContentCopy" Width="12" Height="12"
@@ -374,8 +410,9 @@
</Button.Content> </Button.Content>
</Button> </Button>
<Button Click="DeleteListing_Click" <Button Click="DeleteListing_Click"
Style="{DynamicResource MahApps.Styles.Button.Square}" Style="{StaticResource MahApps.Styles.Button.Square}"
Height="34" Padding="12,0" Margin="0,0,0,6"> Height="34" Padding="12,0" Margin="0,0,0,6"
AutomationProperties.Name="Delete this listing">
<Button.Content> <Button.Content>
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<iconPacks:PackIconMaterial Kind="TrashCanOutline" Width="13" Height="13" <iconPacks:PackIconMaterial Kind="TrashCanOutline" Width="13" Height="13"
@@ -391,15 +428,17 @@
</StackPanel> </StackPanel>
</ScrollViewer> </ScrollViewer>
<!-- Edit panel shown in place of DetailPanel when editing --> <!-- Edit panel - shown in place of DetailPanel when editing -->
<ScrollViewer x:Name="EditPanel" Visibility="Collapsed" <ScrollViewer x:Name="EditPanel" Visibility="Collapsed"
VerticalScrollBarVisibility="Auto" Padding="18,14"> VerticalScrollBarVisibility="Auto" Padding="18,14"
<StackPanel> Focusable="False">
<StackPanel KeyboardNavigation.TabNavigation="Local">
<!-- Title --> <!-- Title -->
<TextBlock Text="TITLE" Style="{StaticResource DetailLabel}" Margin="0,0,0,3"/> <TextBlock x:Name="EditTitleLabel" Text="TITLE" Style="{StaticResource DetailLabel}" Margin="0,0,0,3"/>
<TextBox x:Name="EditTitle" FontSize="13" Margin="0,0,0,4" <TextBox x:Name="EditTitle" FontSize="13" Margin="0,0,0,4"
mah:TextBoxHelper.Watermark="Listing title"/> mah:TextBoxHelper.Watermark="Listing title"
AutomationProperties.LabeledBy="{Binding ElementName=EditTitleLabel}"/>
<!-- Price + Category --> <!-- Price + Category -->
<Grid Margin="0,0,0,4"> <Grid Margin="0,0,0,4">
@@ -409,35 +448,40 @@
<ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<StackPanel Grid.Column="0"> <StackPanel Grid.Column="0">
<TextBlock Text="PRICE (£)" Style="{StaticResource DetailLabel}" Margin="0,0,0,3"/> <TextBlock x:Name="EditPriceLabel" Text="PRICE" Style="{StaticResource DetailLabel}" Margin="0,0,0,3"/>
<mah:NumericUpDown x:Name="EditPrice" Minimum="0" Maximum="99999" <mah:NumericUpDown x:Name="EditPrice" Minimum="0" Maximum="99999"
StringFormat="F2" Interval="0.5" Value="0"/> StringFormat="F2" Interval="0.5" Value="0"
AutomationProperties.LabeledBy="{Binding ElementName=EditPriceLabel}"/>
</StackPanel> </StackPanel>
<StackPanel Grid.Column="2"> <StackPanel Grid.Column="2">
<TextBlock Text="CATEGORY" Style="{StaticResource DetailLabel}" Margin="0,0,0,3"/> <TextBlock x:Name="EditCategoryLabel" Text="CATEGORY" Style="{StaticResource DetailLabel}" Margin="0,0,0,3"/>
<TextBox x:Name="EditCategory" FontSize="12" <TextBox x:Name="EditCategory" FontSize="12"
mah:TextBoxHelper.Watermark="e.g. Clothing, Shoes &amp; Accessories"/> mah:TextBoxHelper.Watermark="e.g. Clothing, Shoes &amp; Accessories"
AutomationProperties.LabeledBy="{Binding ElementName=EditCategoryLabel}"/>
</StackPanel> </StackPanel>
</Grid> </Grid>
<!-- Condition notes --> <!-- Condition notes -->
<TextBlock Text="CONDITION NOTES" Style="{StaticResource DetailLabel}" Margin="0,0,0,3"/> <TextBlock x:Name="EditConditionLabel" Text="CONDITION NOTES" Style="{StaticResource DetailLabel}" Margin="0,0,0,3"/>
<TextBox x:Name="EditCondition" FontSize="12" Margin="0,0,0,4" <TextBox x:Name="EditCondition" FontSize="12" Margin="0,0,0,4"
mah:TextBoxHelper.Watermark="Optional e.g. minor scuff on base"/> mah:TextBoxHelper.Watermark="Optional - e.g. minor scuff on base"
AutomationProperties.LabeledBy="{Binding ElementName=EditConditionLabel}"/>
<!-- Description --> <!-- Description -->
<TextBlock Text="DESCRIPTION" Style="{StaticResource DetailLabel}" Margin="0,0,0,3"/> <TextBlock x:Name="EditDescriptionLabel" Text="DESCRIPTION" Style="{StaticResource DetailLabel}" Margin="0,0,0,3"/>
<TextBox x:Name="EditDescription" FontSize="12" Margin="0,0,0,4" <TextBox x:Name="EditDescription" FontSize="12" Margin="0,0,0,4"
TextWrapping="Wrap" AcceptsReturn="True" TextWrapping="Wrap" AcceptsReturn="True"
Height="130" VerticalScrollBarVisibility="Auto"/> Height="130" VerticalScrollBarVisibility="Auto"
AutomationProperties.LabeledBy="{Binding ElementName=EditDescriptionLabel}"/>
<!-- Photos --> <!-- Photos -->
<TextBlock Text="PHOTOS" Style="{StaticResource DetailLabel}" Margin="0,0,0,3"/> <TextBlock Text="PHOTOS" Style="{StaticResource DetailLabel}" Margin="0,0,0,3"/>
<TextBlock Text="First photo is the listing cover. Use ◀ ▶ to reorder." <TextBlock Text="First photo is the listing cover. Use arrows to reorder."
FontSize="10" Foreground="{DynamicResource MahApps.Brushes.Gray5}" FontSize="10" Foreground="{DynamicResource MahApps.Brushes.Gray5}"
Margin="0,0,0,6"/> Margin="0,0,0,6"/>
<ScrollViewer HorizontalScrollBarVisibility="Auto" <ScrollViewer HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Disabled"
Focusable="False"
Margin="0,0,0,10"> Margin="0,0,0,10">
<StackPanel x:Name="EditPhotosPanel" Orientation="Horizontal"/> <StackPanel x:Name="EditPhotosPanel" Orientation="Horizontal"/>
</ScrollViewer> </ScrollViewer>
@@ -447,11 +491,13 @@
<Button x:Name="SaveEditBtn" Click="SaveEdit_Click" <Button x:Name="SaveEditBtn" Click="SaveEdit_Click"
Style="{DynamicResource MahApps.Styles.Button.Square.Accent}" Style="{DynamicResource MahApps.Styles.Button.Square.Accent}"
Height="34" Padding="16,0" Margin="0,0,8,0" Height="34" Padding="16,0" Margin="0,0,8,0"
Content="Save Changes"/> Content="Save Changes"
AutomationProperties.Name="Save listing changes"/>
<Button x:Name="CancelEditBtn" Click="CancelEdit_Click" <Button x:Name="CancelEditBtn" Click="CancelEdit_Click"
Style="{DynamicResource MahApps.Styles.Button.Square}" Style="{DynamicResource MahApps.Styles.Button.Square}"
Height="34" Padding="14,0" Height="34" Padding="14,0"
Content="Cancel"/> Content="Cancel"
AutomationProperties.Name="Cancel editing"/>
</StackPanel> </StackPanel>
</StackPanel> </StackPanel>
@@ -470,6 +516,7 @@
BorderThickness="0,0,0,3" BorderThickness="0,0,0,3"
BorderBrush="{DynamicResource MahApps.Brushes.Accent}" BorderBrush="{DynamicResource MahApps.Brushes.Accent}"
Panel.ZIndex="10"> Panel.ZIndex="10">
<Border.RenderTransform> <Border.RenderTransform>
<TranslateTransform x:Name="ToastTranslate" Y="60"/> <TranslateTransform x:Name="ToastTranslate" Y="60"/>
</Border.RenderTransform> </Border.RenderTransform>
@@ -482,14 +529,16 @@
<iconPacks:PackIconMaterial Kind="CheckCircleOutline" <iconPacks:PackIconMaterial Kind="CheckCircleOutline"
Width="16" Height="16" Margin="0,0,10,0" Width="16" Height="16" Margin="0,0,10,0"
Foreground="{DynamicResource MahApps.Brushes.Accent}" Foreground="{DynamicResource MahApps.Brushes.Accent}"
VerticalAlignment="Center"/> VerticalAlignment="Center"
IsTabStop="False"/>
<TextBlock x:Name="ToastUrlText" Grid.Column="1" <TextBlock x:Name="ToastUrlText" Grid.Column="1"
VerticalAlignment="Center" TextTrimming="CharacterEllipsis" VerticalAlignment="Center" TextTrimming="CharacterEllipsis"
Foreground="{DynamicResource MahApps.Brushes.Gray1}" FontSize="12"/> Foreground="{DynamicResource MahApps.Brushes.Gray1}" FontSize="12"/>
<Button Grid.Column="2" Content="" Width="20" Height="20" <Button Grid.Column="2" Content="x" Width="20" Height="20"
BorderThickness="0" Background="Transparent" BorderThickness="0" Background="Transparent"
Foreground="{DynamicResource MahApps.Brushes.Gray5}" Foreground="{DynamicResource MahApps.Brushes.Gray5}"
Click="DismissToast_Click" Margin="8,0,0,0"/> Click="DismissToast_Click" Margin="8,0,0,0"
AutomationProperties.Name="Dismiss notification"/>
</Grid> </Grid>
</Border> </Border>