UI Updates + context menu + popup for tray.

This commit is contained in:
Patrick Fic
2020-01-30 21:31:20 -08:00
parent fc52804362
commit 06b516a5b8
8 changed files with 326 additions and 80 deletions

View File

@@ -7,8 +7,8 @@
xmlns:vm="clr-namespace:BodyshopUploader.ViewModels"
mc:Ignorable="d"
Title="{x:Static p:Resources.Title_Login}"
Height="169.084"
Width="389.618"
Height="300"
Width="475"
xmlns:p="clr-namespace:BodyshopUploader.Properties"
xmlns:util="clr-namespace:BodyshopUploader.Utils"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
@@ -19,15 +19,46 @@
TextOptions.TextRenderingMode="Auto"
Background="{DynamicResource MaterialDesignPaper}"
FontFamily="{DynamicResource MaterialDesignFont}"
Closing="Window_Closing">
Closing="Window_Closing"
ResizeMode="NoResize"
WindowStartupLocation="CenterScreen">
<Window.DataContext>
<vm:LoginViewModel />
</Window.DataContext>
<Window.Resources>
<util:NullVisibilityConverter x:Key="NullVisibilityConverter" />
<Style TargetType="StackPanel">
<Setter Property="Margin"
Value="8" />
</Style>
<Style TargetType="TextBox"
BasedOn="{StaticResource MaterialDesignFloatingHintTextBox}">
<Setter Property="Margin"
Value="8" />
</Style>
<Style TargetType="materialDesign:PackIcon">
<Setter Property="Margin"
Value="8" />
</Style>
<Style TargetType="Image">
<Setter Property="Margin"
Value="8" />
</Style>
</Window.Resources>
<StackPanel>
<StackPanel Orientation="Horizontal">
<Image Source="/Assets/logo1024.png"
Height="48"
Width="48"
VerticalAlignment="Center" />
<TextBlock Text="{x:Static p:Resources.Title_Login_Header}"
Style="{StaticResource MaterialDesignHeadline6TextBlock}"
VerticalAlignment="Center" />
</StackPanel>
<StackPanel Orientation="Vertical"
HorizontalAlignment="Center">
<StackPanel Orientation="Horizontal">
@@ -35,8 +66,6 @@
VerticalAlignment="Center" />
<TextBox materialDesign:HintAssist.Hint="{x:Static p:Resources.Username}"
Width="300"
materialDesign:TextFieldAssist.HasClearButton="True"
Style="{StaticResource MaterialDesignFloatingHintTextBox}"
Text="{Binding UserName}" />
</StackPanel>
<StackPanel Orientation="Horizontal">
@@ -45,9 +74,7 @@
<PasswordBox materialDesign:HintAssist.Hint="{x:Static p:Resources.Password}"
KeyDown="PasswordBox_KeyDown"
PasswordChanged="PasswordBox_PasswordChanged"
Width="300"
materialDesign:TextFieldAssist.HasClearButton="True"
Style="{StaticResource MaterialDesignFloatingHintPasswordBox}" />
Width="300" />
</StackPanel>
</StackPanel>

View File

@@ -5,7 +5,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:BodyshopUploader.Views"
mc:Ignorable="d"
Title="Main"
Title="{x:Static p:Resources.Title_Main}"
Height="450"
xmlns:vm="clr-namespace:BodyshopUploader.ViewModels"
Width="800"
@@ -27,12 +27,31 @@
</Window.DataContext>
<Window.Resources>
<util:OpenMainWindowCommand x:Key="OpenMainWindowCommand" />
<util:MonitorStatusConverter x:Key="MonitorStatusConverter" />
<Style TargetType="StackPanel">
<Setter Property="Margin"
Value="8" />
</Style>
<Style TargetType="TextBox"
BasedOn="{StaticResource MaterialDesignFloatingHintTextBox}">
<Setter Property="Margin"
Value="8" />
</Style>
<Style TargetType="materialDesign:PackIcon">
<Setter Property="Margin"
Value="8" />
</Style>
<Style TargetType="Image">
<Setter Property="Margin"
Value="8" />
</Style>
</Window.Resources>
<DockPanel>
<ProgressBar DockPanel.Dock="Bottom"
Value="{Binding Progress}"
IsIndeterminate="{Binding IndeterminateLoading}"
Height="10" />
Height="8" />
<tb:TaskbarIcon DockPanel.Dock="Top"
IconSource="../favicon.ico"
@@ -41,38 +60,59 @@
MenuActivation="RightClick"
ToolTipText="Bodyshop Uploader">
<tb:TaskbarIcon.TrayPopup>
<Border Background="White"
BorderBrush="Orange"
BorderThickness="2"
Width="160"
Height="40">
<Button Content="Click Me!"
HorizontalAlignment="Center"
VerticalAlignment="Center" />
<Border Background="{DynamicResource MaterialDesignPaper}"
BorderBrush="Black"
BorderThickness="2">
<DockPanel Margin="12">
<TextBlock DockPanel.Dock="Top"
Style="{StaticResource MaterialDesignHeadline5TextBlock}"
Text="{x:Static p:Resources.Label_MonitorStatus}" />
<ItemsControl ItemsSource="{Binding MonitoringPaths}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0"
Style="{StaticResource MaterialDesignBody2TextBlock}"
Margin="8"
Text="{Binding FilePath}" />
<TextBlock Grid.Column="1"
Style="{StaticResource MaterialDesignBody2TextBlock}"
Margin="8"
Text="{Binding FolderMonitor.EnableRaisingEvents,
Converter={StaticResource MonitorStatusConverter}}" />
</Grid>
<Separator Margin="2"
Width="150" />
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</DockPanel>
</Border>
</tb:TaskbarIcon.TrayPopup>
<tb:TaskbarIcon.ContextMenu>
<ContextMenu>
<MenuItem Header="Exit" Command="{Binding QuitCommand}" />
<MenuItem Header="{x:Static p:Resources.Label_Restart}"
Command="{Binding StartFolderMonitorsCommand}" />
<MenuItem Header="{x:Static p:Resources.Label_StopAllMonitors}"
Command="{Binding StopFolderMonitorsCommand}" />
<MenuItem Header="Exit"
Command="{Binding QuitCommand}" />
</ContextMenu>
</tb:TaskbarIcon.ContextMenu>
</tb:TaskbarIcon>
<Button DockPanel.Dock="Top"
Command="{Binding TestCommand}"
Content="Test Command" />
<Button Style="{StaticResource MaterialDesignFloatingActionMiniDarkButton}"
Command="{Binding AddMonitoringPathCommand}"
ToolTip="{x:Static p:Resources.Label_AddMonitoringPath}">
<materialDesign:PackIcon Kind="Add"
Height="24"
Width="24" />
</Button>
<StackPanel DockPanel.Dock="Right">
<ComboBox ItemsSource="{Binding ShopData}"
Margin="8"
SelectedItem="{Binding ActiveShop}"
Style="{StaticResource MaterialDesignFloatingHintComboBox}"
materialDesign:HintAssist.Hint="{x:Static p:Resources.Label_ActiveShop}"
DisplayMemberPath="ShopName">
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
@@ -81,70 +121,84 @@
</ComboBox.ItemsPanel>
</ComboBox>
<Button Command="{Binding StartFolderMonitorsCommand}"
<Button Command="{Binding AddMonitoringPathCommand, UpdateSourceTrigger=PropertyChanged}"
Margin="8"
ToolTip="{x:Static p:Resources.Label_AddMonitoringPath}"
Content="{x:Static p:Resources.Label_AddFolder}" />
<Button Command="{Binding StartFolderMonitorsCommand, UpdateSourceTrigger=PropertyChanged}"
Margin="8"
Content="{x:Static p:Resources.Label_StartAllMonitors}" />
<Button Command="{Binding StopFolderMonitorsCommand}"
<Button Command="{Binding StopFolderMonitorsCommand, UpdateSourceTrigger=PropertyChanged}"
Margin="8"
Content="{x:Static p:Resources.Label_StopAllMonitors}" />
<CheckBox IsChecked="{Binding Source={x:Static p:Settings.Default}, Path=AutoStartMonitor}"
Content="{x:Static p:Resources.Label_AutoStartMonitor}"/>
Margin="8"
Content="{x:Static p:Resources.Label_AutoStartMonitor}" />
<Button DockPanel.Dock="Top"
Margin="8"
Command="{Binding TestCommand}"
Content="_TEST" />
</StackPanel>
<DataGrid ItemsSource="{Binding MonitoringPaths}"
AutoGenerateColumns="False"
CanUserAddRows="False">
VerticalContentAlignment="Center"
IsReadOnly="True"
HorizontalContentAlignment="Center"
Margin="8"
CanUserAddRows="False"
CanUserSortColumns="True"
materialDesign:DataGridAssist.CellPadding="4 2 2 2"
materialDesign:DataGridAssist.ColumnHeaderPadding="4 2 2 2">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding FilePath}"
Header="{x:Static p:Resources.Label_FilePath}" />
<DataGridTextColumn Binding="{Binding Source}"
<!--<DataGridTextColumn Binding="{Binding Source}"
Header="{x:Static p:Resources.Label_SourceSystem}" />
<DataGridTextColumn Binding="{Binding FolderMonitor.EnableRaisingEvents}"
Header="XX_RUNNING?"/>
<DataGridTemplateColumn Header="1">
<DataGridTemplateColumn Header="{x:Static p:Resources.Label_SourceSystem}">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Style="{StaticResource MaterialDesignFloatingActionMiniAccentButton}"
Command="{Binding DataContext.RemoveMonitoringPathCommand,
<ComboBox Margin="8"
SelectedItem="{Binding Source}">
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel />
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
<ComboBoxItem>Mitchell</ComboBoxItem>
<ComboBoxItem>Audatex</ComboBoxItem>
<ComboBoxItem>CCC</ComboBoxItem>
</ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>-->
<DataGridTextColumn Binding="{Binding FolderMonitor.EnableRaisingEvents, Converter={StaticResource MonitorStatusConverter}}"
Header="{x:Static p:Resources.Label_Status}" />
<DataGridTemplateColumn Header="{x:Static p:Resources.Label_Actions}">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Button Command="{Binding DataContext.RemoveMonitoringPathCommand,
RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}"
CommandParameter="{Binding .}">
<materialDesign:PackIcon Kind="RemoveCircle"
Height="24"
Width="24" />
</Button>
CommandParameter="{Binding .}"
Style="{StaticResource MaterialDesignOutlinedButton}"
Margin="4"
Content="{x:Static p:Resources.Label_Remove}" />
<Button Command="{Binding DataContext.RestartMonitoringPathCommand,
RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}"
CommandParameter="{Binding .}"
Style="{StaticResource MaterialDesignOutlinedButton}"
Margin="4"
Content="{x:Static p:Resources.Label_Restart}" />
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
<!--<ItemsControl ItemsSource="{Binding MonitoringPaths}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0"
Text="{Binding .}" />
<materialDesign:PackIcon Kind="RemoveCircle"
Grid.Column="1"
Height="16"
Width="16">
<materialDesign:PackIcon.InputBindings>
<MouseBinding Gesture="LeftClick"
Command="{Binding DataContext.RemoveMonitoringPathCommand,
RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}"
CommandParameter="{Binding .}" />
</materialDesign:PackIcon.InputBindings>
</materialDesign:PackIcon>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>-->
</DockPanel>
</Window>