style<Theme>: new theme design

This commit is contained in:
leo 2023-07-18 15:00:27 +08:00
parent 25971f9a56
commit 535e05a667
14 changed files with 221 additions and 183 deletions

View file

@ -53,11 +53,10 @@
<StackPanel Grid.Row="2" Orientation="Vertical">
<!-- LOGO -->
<Path
Margin="0,16,0,0"
Width="64" Height="64"
Data="{StaticResource Icon.Git}"
Fill="{DynamicResource Brush.Logo}"/>
<Image
Margin="0,16,0,0"
Width="64" Height="64"
Source="pack://application:,,,/App.ico"/>
<!-- Title -->
<TextBlock

View file

@ -18,14 +18,14 @@
Closing="OnClosing">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="28"/>
<RowDefinition Height="36"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!-- Titlebar -->
<Grid Grid.Row="0" Background="{DynamicResource Brush.TitleBar}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="32"/>
<ColumnDefinition Width="46"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="360"/>
</Grid.ColumnDefinitions>
@ -36,13 +36,13 @@
<!-- Main Menu -->
<Button
Grid.Column="0"
Margin="4,4,4,0"
Width="16"
Margin="0,4,0,0"
Width="32" Height="32"
Background="Transparent"
BorderThickness="0"
WindowChrome.IsHitTestVisibleInChrome="True"
Click="ToggleMainMenu">
<Path Data="{StaticResource Icon.Git}" Fill="{DynamicResource Brush.Logo}"/>
<Image Width="20" Height="20" RenderOptions.BitmapScalingMode="HighQuality" Source="pack://application:,,,/App.ico"/>
</Button>
<!-- Tabs -->

View file

@ -11,7 +11,7 @@
d:DesignHeight="450" d:DesignWidth="800">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="32"/>
<RowDefinition Height="36"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
@ -21,7 +21,7 @@
</Grid.Resources>
<!-- Toolbar -->
<Border Grid.Row="0" BorderBrush="{DynamicResource Brush.Border0}" BorderThickness="0,0,0,1">
<Border Grid.Row="0" BorderBrush="{DynamicResource Brush.Border0}" BorderThickness="0,0,0,1" Background="{DynamicResource Brush.ToolBar}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
@ -33,7 +33,7 @@
<controls:IconButton
Margin="8,0"
IconSize="14"
Icon="{DynamicResource Icon.Folder.Open}"
Icon="{DynamicResource Icon.Folder.Open}"
ToolTip="{DynamicResource Text.Dashboard.Explore}"
Click="OpenInExplorer"/>
<controls:IconButton
@ -576,7 +576,7 @@
Width="500"
Height="Auto">
<Border.Effect>
<DropShadowEffect BlurRadius="4" ShadowDepth="0" Color="Black" Opacity=".8"/>
<DropShadowEffect BlurRadius="6" ShadowDepth="0" Color="Black" Opacity=".8"/>
</Border.Effect>
<Grid>

View file

@ -22,14 +22,33 @@
</Grid.RowDefinitions>
<!-- SearchBar -->
<Grid Grid.Row="0" x:Name="searchBar" Margin="0,-32,0,0">
<Grid Grid.Row="0" x:Name="searchBar" Height="32" Margin="0,-32,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="24"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Border
Grid.Column="0" Grid.ColumnSpan="3"
BorderThickness="0,0,0,1"
BorderBrush="{DynamicResource Brush.Border0}"
Background="{DynamicResource Brush.Window}"/>
<Path
Grid.Column="0"
Width="14" Height="14"
Data="{StaticResource Icon.Search}"/>
<controls:TextEdit
Grid.Column="1"
x:Name="txtSearch"
Margin="4" Padding="0,0,22,0"
Height="24"
BorderThickness="0"
Placeholder="{DynamicResource Text.Histories.Search}"
PreviewKeyDown="OnSearchPreviewKeyDown"/>
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="8,0">
<StackPanel Grid.Column="2" Orientation="Horizontal" VerticalAlignment="Center" Margin="8,0">
<controls:IconButton
Click="ClearSearch"
Width="14" Height="14"
@ -38,7 +57,7 @@
ToolTip="{DynamicResource Text.Histories.SearchClear}"/>
<controls:IconButton
Click="HideSearch"
Width="14" Height="14" Margin="6,0,0,0"
Width="14" Height="14" Margin="12,0,0,0"
Icon="{StaticResource Icon.Up}"
Foreground="{DynamicResource Brush.FG2}"
ToolTip="{DynamicResource Text.Close}"/>
@ -96,7 +115,7 @@
</ItemsControl.ItemTemplate>
</ItemsControl>
<TextBlock Text="{Binding Subject}" FontSize="13" Margin="2,0,0,0"/>
<TextBlock Text="{Binding Subject}" Margin="2,0,0,0"/>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>

View file

@ -8,7 +8,7 @@
xmlns:converters="clr-namespace:SourceGit.Views.Converters"
mc:Ignorable="d"
d:DesignHeight="28" d:DesignWidth="800">
<Grid Margin="0,4,0,0">
<Grid Margin="0,6,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1"/>
<ColumnDefinition Width="Auto"/>
@ -20,7 +20,7 @@
<Rectangle
Grid.Column="0"
x:Name="startSeperator"
Width="1" Height="16"
Width="1" Height="20"
Fill="{DynamicResource Brush.FG2}"
Opacity=".5"/>
@ -74,8 +74,8 @@
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBoxItem}">
<Border x:Name="Border" Background="Transparent" BorderBrush="Transparent" BorderThickness="1,1,1,0" CornerRadius="4,4,0,0">
<Grid x:Name="Contents" Width="160" VerticalAlignment="Center" Opacity=".5" ToolTip="{Binding Tooltip}">
<Border x:Name="Border" Background="Transparent" BorderBrush="Transparent" BorderThickness="1,1,1,0" CornerRadius="6,6,0,0">
<Grid x:Name="Contents" Width="200" VerticalAlignment="Center" Opacity=".5" ToolTip="{Binding Tooltip}">
<Path
Width="8" Margin="8,0,0,0"
HorizontalAlignment="Left"
@ -102,7 +102,7 @@
<Rectangle
x:Name="seperator"
Margin="4,0,0,0"
Width="1"
Width="1" Height="20"
Fill="Transparent"
HorizontalAlignment="Right"/>
</Grid>
@ -111,20 +111,21 @@
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="Border" Property="BorderBrush" Value="{DynamicResource Brush.Border0}"/>
<Setter TargetName="Border" Property="Background" Value="{DynamicResource Brush.Window}"/>
<Setter TargetName="Border" Property="Background" Value="{DynamicResource Brush.ToolBar}"/>
<Setter TargetName="Contents" Property="Opacity" Value="1"/>
<Setter TargetName="closer" Property="Visibility" Value="Visible"/>
</Trigger>
<DataTrigger Binding="{Binding IsSeperatorVisible}" Value="True">
<Setter TargetName="seperator" Property="Fill" Value="{DynamicResource Brush.FG2}"/>
</DataTrigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="closer" Property="Visibility" Value="Visible"/>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsSelected" Value="False"/>
<Condition Property="IsMouseOver" Value="True"/>
</MultiTrigger.Conditions>
<Setter TargetName="Contents" Property="Opacity" Value=".85"/>
<Setter TargetName="closer" Property="Visibility" Value="Visible"/>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
@ -135,7 +136,7 @@
</ListBox>
<Button
Width="16" Height="16" Margin="8,0,0,0"
Width="16" Height="16" Margin="8,2,0,0"
Background="Transparent"
BorderThickness="0"
ToolTip="{DynamicResource Text.PageTabBar.New}"

View file

@ -7,73 +7,60 @@
xmlns:models="clr-namespace:SourceGit.Models"
xmlns:converters="clr-namespace:SourceGit.Views.Converters"
mc:Ignorable="d"
d:DesignHeight="800" d:DesignWidth="800">
<Grid Background="Transparent" AllowDrop="True" Drop="OnPageDrop">
d:DesignHeight="800" d:DesignWidth="800"
UseLayoutRounding="True">
<Grid AllowDrop="True" Drop="OnPageDrop">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="36"/>
<RowDefinition Height="48"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="600"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<!-- Toolbar -->
<Border Grid.Row="0" BorderBrush="{DynamicResource Brush.Border0}" BorderThickness="0,0,0,1" Background="{DynamicResource Brush.ToolBar}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<!-- Repositories Tool Bar -->
<Grid Grid.Row="0" Grid.Column="1" Margin="2,100,2,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="32"/>
<ColumnDefinition Width="32"/>
<ColumnDefinition Width="32"/>
<ColumnDefinition Width="32"/>
<ColumnDefinition Width="8"/>
</Grid.ColumnDefinitions>
<TextBlock
Grid.Column="0"
HorizontalAlignment="Left"
Text="{DynamicResource Text.Welcome.Repositories}"
FontSize="13pt"/>
<StackPanel Grid.Column="0" Orientation="Horizontal">
<controls:IconButton
Margin="8,0"
IconSize="14"
Icon="{DynamicResource Icon.Folder.Open}"
ToolTip="{DynamicResource Text.Welcome.OpenOrInit}"
Click="OnOpenClicked"/>
<Button
Grid.Column="2"
Background="Transparent" BorderThickness="0"
ToolTip="{DynamicResource Text.Welcome.OpenOrInit}"
Click="OnOpenClicked">
<Path Width="16" Height="16" Data="{StaticResource Icon.Folder.Open}"/>
</Button>
<controls:IconButton
Margin="8,0"
IconSize="14"
Icon="{DynamicResource Icon.Pull}"
ToolTip="{DynamicResource Text.Welcome.Clone}"
Click="OnCloneClicked"/>
<Button
Grid.Column="3"
Background="Transparent" BorderThickness="0"
ToolTip="{DynamicResource Text.Welcome.Clone}"
Click="OnCloneClicked">
<Path Width="15" Height="15" Data="{StaticResource Icon.Pull}"/>
</Button>
<controls:IconButton
Margin="8,0"
IconSize="14"
Icon="{DynamicResource Icon.Terminal}"
ToolTip="{DynamicResource Text.Welcome.OpenTerminal}"
Click="OnOpenTerminalClicked"/>
</StackPanel>
<Button
Grid.Column="4"
Background="Transparent" BorderThickness="0"
ToolTip="{DynamicResource Text.Welcome.OpenTerminal}"
Click="OnOpenTerminalClicked">
<Path Width="14" Height="14" Data="{StaticResource Icon.Terminal}"/>
</Button>
<Button
Grid.Column="2"
HorizontalAlignment="Right"
Margin="8,0"
Background="Transparent" BorderThickness="0"
ToolTip="{DynamicResource Text.Welcome.Sort}"
Click="OnSortMethodClicked">
<Path Width="16" Height="16" Data="{StaticResource Icon.Sort}"/>
</Button>
</Grid>
</Border>
<Button
Grid.Column="5"
Background="Transparent" BorderThickness="0"
ToolTip="{DynamicResource Text.Welcome.Sort}"
Click="OnSortMethodClicked">
<Path Width="16" Height="16" Data="{StaticResource Icon.Sort}"/>
</Button>
</Grid>
<!-- Search Bar -->
<Grid Grid.Row="1" Grid.Column="1" Margin="2,8" Height="28" VerticalAlignment="Top">
<Grid Grid.Row="1" Width="600" Height="28" VerticalAlignment="Center">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="24"/>
<ColumnDefinition Width="*"/>
@ -81,11 +68,16 @@
<Border
Grid.Column="0" Grid.ColumnSpan="2"
BorderBrush="{DynamicResource Brush.Border2}"
BorderThickness="1"/>
Background="{DynamicResource Brush.Contents}"
BorderThickness="0"
CornerRadius="14">
<Border.Effect>
<DropShadowEffect BlurRadius="6" ShadowDepth="0" Color="{DynamicResource Colors.Shadow}" Opacity=".2"/>
</Border.Effect>
</Border>
<Path
Grid.Column="0"
Width="14" Height="14"
Width="14" Height="14" Margin="4,0,0,0"
Fill="{DynamicResource Brush.FG2}"
Data="{StaticResource Icon.Search}"
IsHitTestVisible="False"/>
@ -98,14 +90,13 @@
BorderThickness="0"
TextChanged="OnSearchFilterChanged"/>
</Grid>
<!-- Repositories List -->
<Grid Grid.Row="2" Grid.Column="1" Margin="0,0,0,80">
<Grid Grid.Row="2" Width="600" HorizontalAlignment="Center" Margin="0,0,0,8" AllowDrop="True" Drop="OnPageDrop">
<Grid.Resources>
<converters:IntToBookmarkBrush x:Key="IntToBookmarkBrush"/>
</Grid.Resources>
<!-- Wrap panel -->
<ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
<ItemsControl x:Name="repoList">
<ItemsControl.ItemsPanel>
@ -119,41 +110,44 @@
<Control MouseDoubleClick="OnDoubleClickRepository">
<Control.Template>
<ControlTemplate>
<Grid Height="38" Margin="2">
<Grid Height="38" Margin="2,0,2,6">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="8"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="32"/>
<ColumnDefinition Width="32"/>
<ColumnDefinition Width="32"/>
<ColumnDefinition Width="32"/>
<ColumnDefinition Width="8"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Border
Grid.Column="0" Grid.ColumnSpan="7"
BorderThickness="1" BorderBrush="{DynamicResource Brush.Border2}"
Background="{DynamicResource Brush.Contents}"/>
Grid.Column="0" Grid.ColumnSpan="2"
BorderThickness="1" BorderBrush="{DynamicResource Brush.Border2}"
Background="{DynamicResource Brush.Popup}"
UseLayoutRounding="True"
SnapsToDevicePixels="True">
<Path
Width="14" Height="14"
Data="M 1,0 L8,0 L1,7 z"
HorizontalAlignment="Left" VerticalAlignment="Top"
Fill="{Binding Bookmark, Converter={StaticResource IntToBookmarkBrush}}"/>
</Border>
<Border Grid.Column="0" Width="4" HorizontalAlignment="Left" Background="{Binding Bookmark, Converter={StaticResource IntToBookmarkBrush}}"/>
<StackPanel Grid.Column="1" Margin="4,0" Orientation="Horizontal">
<TextBlock Text="{Binding Name}" FontSize="12pt" FontFamily="{Binding Source={x:Static models:Preference.Instance}, Path=General.FontFamilyContent, Mode=OneWay}" />
<TextBlock Text="{Binding Path}" FontSize="10pt" FontFamily="{Binding Source={x:Static models:Preference.Instance}, Path=General.FontFamilyContent, Mode=OneWay}" Margin="8,0" Foreground="{DynamicResource Brush.FG2}"/>
<StackPanel Grid.Column="0" Margin="8,0" Orientation="Horizontal">
<TextBlock Text="{Binding Name}" FontSize="12pt" Margin="4,0,0,0" FontFamily="{Binding Source={x:Static models:Preference.Instance}, Path=General.FontFamilyContent, Mode=OneWay}" />
<TextBlock Text="{Binding Path}" FontSize="10pt" Margin="8,0,0,0" FontFamily="{Binding Source={x:Static models:Preference.Instance}, Path=General.FontFamilyContent, Mode=OneWay}" Foreground="{DynamicResource Brush.FG2}"/>
</StackPanel>
<Button Grid.Column="2" BorderThickness="0" Background="Transparent" ToolTip="{DynamicResource Text.RepoCM.Open}" Click="OnOpenRepository">
<Path Width="15" Data="{StaticResource Icon.Folder.Open}"/>
</Button>
<Button Grid.Column="3" Margin="8,0,0,0" BorderThickness="0" Background="Transparent" ToolTip="{DynamicResource Text.RepoCM.Explore}" Click="OnExploreRepository">
<Path Width="14" Data="{StaticResource Icon.DiffWith}"/>
</Button>
<Button Grid.Column="4" Margin="8,0,0,0" BorderThickness="0" Background="Transparent" ToolTip="{DynamicResource Text.Welcome.OpenTerminal}" Click="OnOpenRepositoryTerminal">
<Path Width="14" Data="{StaticResource Icon.Terminal}"/>
</Button>
<Button Grid.Column="5" Margin="8,0,0,0" BorderThickness="0" Background="Transparent" ToolTip="{DynamicResource Text.Welcome.Delete}" Click="OnRemoveRepository">
<Path Width="10" Data="{StaticResource Icon.Close}"/>
</Button>
<StackPanel Grid.Column="1" Margin="0,0,6,0" Orientation="Horizontal">
<Button Width="32" BorderThickness="0" Background="Transparent" ToolTip="{DynamicResource Text.RepoCM.Open}" Click="OnOpenRepository">
<Path Width="15" Data="{StaticResource Icon.Folder.Open}"/>
</Button>
<Button Width="32" BorderThickness="0" Background="Transparent" ToolTip="{DynamicResource Text.RepoCM.Explore}" Click="OnExploreRepository">
<Path Width="14" Data="{StaticResource Icon.DiffWith}"/>
</Button>
<Button Width="32" BorderThickness="0" Background="Transparent" ToolTip="{DynamicResource Text.Welcome.OpenTerminal}" Click="OnOpenRepositoryTerminal">
<Path Width="14" Data="{StaticResource Icon.Terminal}"/>
</Button>
<Button Width="32" BorderThickness="0" Background="Transparent" ToolTip="{DynamicResource Text.Welcome.Delete}" Click="OnRemoveRepository">
<Path Width="10" Data="{StaticResource Icon.Close}"/>
</Button>
</StackPanel>
</Grid>
</ControlTemplate>
</Control.Template>
@ -163,5 +157,18 @@
</ItemsControl>
</ScrollViewer>
</Grid>
<!-- Mark -->
<StackPanel Grid.Row="0" Grid.RowSpan="3" x:Name="mask" Orientation="Vertical" HorizontalAlignment="Center" VerticalAlignment="Center" Visibility="Collapsed" IsHitTestVisible="False">
<Path Width="64" Height="64" Data="{StaticResource Icon.DragAndDrop}" Fill="{DynamicResource Brush.FG2}"/>
<TextBlock
TextAlignment="Center"
FontSize="18"
Margin="0,24,0,0"
FontWeight="Bold"
Text="{DynamicResource Text.Welcome.DragDropTip}"
Foreground="{DynamicResource Brush.FG2}"/>
</StackPanel>
</Grid>
</UserControl>

View file

@ -192,10 +192,11 @@ namespace SourceGit.Views.Widgets {
visibles.Sort((l, r) => r.LastOpenTime.CompareTo(l.LastOpenTime));
break;
default:
visibles.Sort((l, r) => l.Bookmark.CompareTo(r.Bookmark));
visibles.Sort((l, r) => r.Bookmark - l.Bookmark);
break;
}
mask.Visibility = visibles.Count == 0 ? Visibility.Visible : Visibility.Collapsed;
repoList.ItemsSource = visibles;
}