Merge pull request #315 from SpaceTimee/fork

Optimized MainWindow a little
This commit is contained in:
2dust
2024-01-05 12:14:57 +08:00
committed by GitHub

View File

@@ -4,7 +4,6 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:conv="clr-namespace:ClashN.Converters" xmlns:conv="clr-namespace:ClashN.Converters"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:ClashN.Views"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:reactiveui="http://reactiveui.net" xmlns:reactiveui="http://reactiveui.net"
@@ -19,7 +18,7 @@
x:TypeArguments="vms:MainWindowViewModel" x:TypeArguments="vms:MainWindowViewModel"
Background="{DynamicResource MaterialDesignPaper}" Background="{DynamicResource MaterialDesignPaper}"
FontFamily="{x:Static conv:MaterialDesignFonts.MyFont}" FontFamily="{x:Static conv:MaterialDesignFonts.MyFont}"
ShowInTaskbar="True" ScrollViewer.VerticalScrollBarVisibility="Auto"
TextElement.FontFamily="{x:Static conv:MaterialDesignFonts.MyFont}" TextElement.FontFamily="{x:Static conv:MaterialDesignFonts.MyFont}"
TextElement.Foreground="{DynamicResource MaterialDesignBody}" TextElement.Foreground="{DynamicResource MaterialDesignBody}"
TextOptions.TextFormattingMode="Display" TextOptions.TextFormattingMode="Display"
@@ -31,53 +30,52 @@
SnackbarMessageQueue="{Binding ElementName=MainSnackbar, Path=MessageQueue}" SnackbarMessageQueue="{Binding ElementName=MainSnackbar, Path=MessageQueue}"
Style="{StaticResource MaterialDesignEmbeddedDialogHost}"> Style="{StaticResource MaterialDesignEmbeddedDialogHost}">
<Grid> <Grid>
<Grid Grid.Column="0"> <TabControl Padding="2,0" Style="{StaticResource MaterialDesignNavigatilRailTabControl}">
<TabControl Padding="2,0" Style="{StaticResource MaterialDesignNavigatilRailTabControl}"> <materialDesign:NavigationRailAssist.FloatingContent>
<materialDesign:NavigationRailAssist.FloatingContent> <StackPanel
<StackPanel
Width="auto" Width="auto"
Height="auto" Height="auto"
Margin="4"> Margin="4">
<Grid Width="80" Margin="0,8,0,8"> <Grid Width="80" Margin="0,8,0,8">
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
</Grid.RowDefinitions> </Grid.RowDefinitions>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<materialDesign:PackIcon <materialDesign:PackIcon
Grid.Row="0" Grid.Row="0"
Grid.Column="0" Grid.Column="0"
Kind="ArrowUpThin" /> Kind="ArrowUpThin" />
<TextBlock <TextBlock
x:Name="txtSpeedUpload" x:Name="txtSpeedUpload"
Grid.Row="0" Grid.Row="0"
Grid.Column="1" Grid.Column="1"
Margin="8,0,0,0" Margin="8,0,0,0"
Padding="0,0,4,0" Padding="0,0,4,0"
Style="{StaticResource ToolbarItem}" /> Style="{StaticResource ToolbarItem}" />
<materialDesign:PackIcon <materialDesign:PackIcon
Grid.Row="1" Grid.Row="1"
Grid.Column="0" Grid.Column="0"
Kind="ArrowDownThin" /> Kind="ArrowDownThin" />
<TextBlock <TextBlock
x:Name="txtSpeedDownload" x:Name="txtSpeedDownload"
Grid.Row="1" Grid.Row="1"
Grid.Column="1" Grid.Column="1"
Margin="8,0,0,0" Margin="8,0,0,0"
Padding="0,0,4,0" Padding="0,0,4,0"
Style="{StaticResource ToolbarItem}" /> Style="{StaticResource ToolbarItem}" />
</Grid> </Grid>
<Button <Button
x:Name="btnReload" x:Name="btnReload"
Content="{materialDesign:PackIcon Kind=Reload}" Content="{materialDesign:PackIcon Kind=Reload}"
Style="{StaticResource MaterialDesignFloatingActionMiniButton}" Style="{StaticResource MaterialDesignFlatLightBgButton}"
ToolTip="{x:Static resx:ResUI.TbReloadCore}" /> ToolTip="{x:Static resx:ResUI.TbReloadCore}" />
</StackPanel> </StackPanel>
</materialDesign:NavigationRailAssist.FloatingContent> </materialDesign:NavigationRailAssist.FloatingContent>
<!--<TabItem <!--<TabItem
x:Name="dashboardTabItem" x:Name="dashboardTabItem"
Height="auto" Height="auto"
Style="{StaticResource MyMaterialDesignNavigationRailTabItem}"> Style="{StaticResource MyMaterialDesignNavigationRailTabItem}">
@@ -97,224 +95,223 @@
</StackPanel> </StackPanel>
</TabItem.Header> </TabItem.Header>
</TabItem>--> </TabItem>-->
<TabItem x:Name="proxiesTabItem" Style="{StaticResource MyMaterialDesignNavigationRailTabItem}"> <TabItem x:Name="proxiesTabItem" Style="{StaticResource MyMaterialDesignNavigationRailTabItem}">
<TabItem.Header> <TabItem.Header>
<StackPanel Width="auto" Height="auto"> <StackPanel Width="auto" Height="auto">
<materialDesign:PackIcon <materialDesign:PackIcon
Width="24" Width="24"
Height="24" Height="24"
HorizontalAlignment="Center" HorizontalAlignment="Center"
Kind="ArrowDecisionOutline" /> Kind="ArrowDecisionOutline" />
<TextBlock <TextBlock
HorizontalAlignment="Center" HorizontalAlignment="Center"
Style="{StaticResource TabItemTitle}" Style="{StaticResource TabItemTitle}"
Text="{x:Static resx:ResUI.TbProxies}" /> Text="{x:Static resx:ResUI.TbProxies}" />
</StackPanel> </StackPanel>
</TabItem.Header> </TabItem.Header>
</TabItem> </TabItem>
<TabItem x:Name="profilesTabItem" Style="{StaticResource MyMaterialDesignNavigationRailTabItem}"> <TabItem x:Name="profilesTabItem" Style="{StaticResource MyMaterialDesignNavigationRailTabItem}">
<TabItem.Header> <TabItem.Header>
<StackPanel Width="auto" Height="auto"> <StackPanel Width="auto" Height="auto">
<materialDesign:PackIcon <materialDesign:PackIcon
Width="24" Width="24"
Height="24" Height="24"
HorizontalAlignment="Center" HorizontalAlignment="Center"
Kind="Server" /> Kind="Server" />
<TextBlock <TextBlock
HorizontalAlignment="Center" HorizontalAlignment="Center"
Style="{StaticResource TabItemTitle}" Style="{StaticResource TabItemTitle}"
Text="{x:Static resx:ResUI.TbProfiles}" /> Text="{x:Static resx:ResUI.TbProfiles}" />
</StackPanel> </StackPanel>
</TabItem.Header> </TabItem.Header>
</TabItem> </TabItem>
<TabItem x:Name="logsTabItem" Style="{StaticResource MyMaterialDesignNavigationRailTabItem}"> <TabItem x:Name="logsTabItem" Style="{StaticResource MyMaterialDesignNavigationRailTabItem}">
<TabItem.Header> <TabItem.Header>
<StackPanel Width="auto" Height="auto"> <StackPanel Width="auto" Height="auto">
<materialDesign:PackIcon <materialDesign:PackIcon
Width="24" Width="24"
Height="24" Height="24"
HorizontalAlignment="Center" HorizontalAlignment="Center"
Kind="MessageTextOutline" /> Kind="MessageTextOutline" />
<TextBlock <TextBlock
HorizontalAlignment="Center" HorizontalAlignment="Center"
Style="{StaticResource TabItemTitle}" Style="{StaticResource TabItemTitle}"
Text="{x:Static resx:ResUI.TbLogs}" /> Text="{x:Static resx:ResUI.TbLogs}" />
</StackPanel> </StackPanel>
</TabItem.Header> </TabItem.Header>
</TabItem> </TabItem>
<TabItem x:Name="connectionsTabItem" Style="{StaticResource MyMaterialDesignNavigationRailTabItem}"> <TabItem x:Name="connectionsTabItem" Style="{StaticResource MyMaterialDesignNavigationRailTabItem}">
<TabItem.Header> <TabItem.Header>
<StackPanel Width="auto" Height="auto"> <StackPanel Width="auto" Height="auto">
<materialDesign:PackIcon <materialDesign:PackIcon
Width="24" Width="24"
Height="24" Height="24"
HorizontalAlignment="Center" HorizontalAlignment="Center"
Kind="LanConnect" /> Kind="LanConnect" />
<TextBlock <TextBlock
HorizontalAlignment="Center" HorizontalAlignment="Center"
Style="{StaticResource TabItemTitle}" Style="{StaticResource TabItemTitle}"
Text="{x:Static resx:ResUI.TbConnections}" /> Text="{x:Static resx:ResUI.TbConnections}" />
</StackPanel> </StackPanel>
</TabItem.Header> </TabItem.Header>
</TabItem> </TabItem>
<TabItem x:Name="settingsTabItem" Style="{StaticResource MyMaterialDesignNavigationRailTabItem}"> <TabItem x:Name="settingsTabItem" Style="{StaticResource MyMaterialDesignNavigationRailTabItem}">
<TabItem.Header> <TabItem.Header>
<StackPanel Width="auto" Height="auto"> <StackPanel Width="auto" Height="auto">
<materialDesign:PackIcon <materialDesign:PackIcon
Width="24" Width="24"
Height="24" Height="24"
HorizontalAlignment="Center" HorizontalAlignment="Center"
Kind="SettingsOutline" /> Kind="SettingsOutline" />
<TextBlock <TextBlock
HorizontalAlignment="Center" HorizontalAlignment="Center"
Style="{StaticResource TabItemTitle}" Style="{StaticResource TabItemTitle}"
Text="{x:Static resx:ResUI.TbSettings}" /> Text="{x:Static resx:ResUI.TbSettings}" />
</StackPanel> </StackPanel>
</TabItem.Header> </TabItem.Header>
</TabItem> </TabItem>
<TabItem x:Name="helpTabItem" Style="{StaticResource MyMaterialDesignNavigationRailTabItem}"> <TabItem x:Name="helpTabItem" Style="{StaticResource MyMaterialDesignNavigationRailTabItem}">
<TabItem.Header> <TabItem.Header>
<StackPanel Width="auto" Height="auto"> <StackPanel Width="auto" Height="auto">
<materialDesign:PackIcon <materialDesign:PackIcon
Width="24" Width="24"
Height="24" Height="24"
HorizontalAlignment="Center" HorizontalAlignment="Center"
Kind="HelpCircleOutline" /> Kind="HelpCircleOutline" />
<TextBlock <TextBlock
HorizontalAlignment="Center" HorizontalAlignment="Center"
Style="{StaticResource TabItemTitle}" Style="{StaticResource TabItemTitle}"
Text="{x:Static resx:ResUI.TbHelp}" /> Text="{x:Static resx:ResUI.TbHelp}" />
</StackPanel> </StackPanel>
</TabItem.Header> </TabItem.Header>
</TabItem> </TabItem>
<TabItem x:Name="promotionTabItem" Style="{StaticResource MyMaterialDesignNavigationRailTabItem}"> <TabItem x:Name="promotionTabItem" Style="{StaticResource MyMaterialDesignNavigationRailTabItem}">
<TabItem.Header> <TabItem.Header>
<StackPanel Width="auto" Height="auto"> <StackPanel Width="auto" Height="auto">
<materialDesign:PackIcon <materialDesign:PackIcon
Width="24" Width="24"
Height="24" Height="24"
HorizontalAlignment="Center" HorizontalAlignment="Center"
Kind="VolumeHigh" /> Kind="VolumeHigh" />
<TextBlock <TextBlock
HorizontalAlignment="Center" HorizontalAlignment="Center"
Style="{StaticResource TabItemTitle}" Style="{StaticResource TabItemTitle}"
Text="{x:Static resx:ResUI.TbPromotion}" /> Text="{x:Static resx:ResUI.TbPromotion}" />
</StackPanel> </StackPanel>
</TabItem.Header> </TabItem.Header>
</TabItem> </TabItem>
</TabControl> </TabControl>
<tb:TaskbarIcon <tb:TaskbarIcon
x:Name="tbNotify" x:Name="tbNotify"
IconSource="/ClashN.ico" IconSource="/ClashN.ico"
NoLeftClickDelay="True"> NoLeftClickDelay="True">
<tb:TaskbarIcon.ContextMenu> <tb:TaskbarIcon.ContextMenu>
<ContextMenu Style="{StaticResource DefMenu}"> <ContextMenu Style="{StaticResource DefMenu}">
<MenuItem x:Name="menuSystemProxyClear"> <MenuItem x:Name="menuSystemProxyClear">
<MenuItem.Header> <MenuItem.Header>
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<materialDesign:PackIcon <materialDesign:PackIcon
x:Name="menuSystemProxyClear2" x:Name="menuSystemProxyClear2"
Margin="0,0,8,0" Margin="0,0,8,0"
Kind="Check" /> Kind="Check" />
<TextBlock Text="{x:Static resx:ResUI.menuSystemProxyClear}" /> <TextBlock Text="{x:Static resx:ResUI.menuSystemProxyClear}" />
</StackPanel> </StackPanel>
</MenuItem.Header> </MenuItem.Header>
</MenuItem> </MenuItem>
<MenuItem x:Name="menuSystemProxySet"> <MenuItem x:Name="menuSystemProxySet">
<MenuItem.Header> <MenuItem.Header>
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<materialDesign:PackIcon <materialDesign:PackIcon
x:Name="menuSystemProxySet2" x:Name="menuSystemProxySet2"
Margin="0,0,8,0" Margin="0,0,8,0"
Kind="Check" /> Kind="Check" />
<TextBlock Text="{x:Static resx:ResUI.menuSystemProxySet}" /> <TextBlock Text="{x:Static resx:ResUI.menuSystemProxySet}" />
</StackPanel> </StackPanel>
</MenuItem.Header> </MenuItem.Header>
</MenuItem> </MenuItem>
<MenuItem x:Name="menuSystemProxyNothing"> <MenuItem x:Name="menuSystemProxyNothing">
<MenuItem.Header> <MenuItem.Header>
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<materialDesign:PackIcon <materialDesign:PackIcon
x:Name="menuSystemProxyNothing2" x:Name="menuSystemProxyNothing2"
Margin="0,0,8,0" Margin="0,0,8,0"
Kind="Check" /> Kind="Check" />
<TextBlock Text="{x:Static resx:ResUI.menuSystemProxyNothing}" /> <TextBlock Text="{x:Static resx:ResUI.menuSystemProxyNothing}" />
</StackPanel> </StackPanel>
</MenuItem.Header> </MenuItem.Header>
</MenuItem> </MenuItem>
<MenuItem x:Name="menuSystemProxyPac"> <MenuItem x:Name="menuSystemProxyPac">
<MenuItem.Header> <MenuItem.Header>
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<materialDesign:PackIcon <materialDesign:PackIcon
x:Name="menuSystemProxyPac2" x:Name="menuSystemProxyPac2"
Margin="0,0,8,0" Margin="0,0,8,0"
Kind="Check" /> Kind="Check" />
<TextBlock Text="{x:Static resx:ResUI.menuSystemProxyPac}" /> <TextBlock Text="{x:Static resx:ResUI.menuSystemProxyPac}" />
</StackPanel> </StackPanel>
</MenuItem.Header> </MenuItem.Header>
</MenuItem> </MenuItem>
<Separator /> <Separator />
<MenuItem x:Name="menuModeRule"> <MenuItem x:Name="menuModeRule">
<MenuItem.Header> <MenuItem.Header>
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<materialDesign:PackIcon <materialDesign:PackIcon
x:Name="menuModeRule2" x:Name="menuModeRule2"
Margin="0,0,8,0" Margin="0,0,8,0"
Kind="Check" /> Kind="Check" />
<TextBlock Text="{x:Static resx:ResUI.menuModeRule}" /> <TextBlock Text="{x:Static resx:ResUI.menuModeRule}" />
</StackPanel> </StackPanel>
</MenuItem.Header> </MenuItem.Header>
</MenuItem> </MenuItem>
<MenuItem x:Name="menuModeGlobal"> <MenuItem x:Name="menuModeGlobal">
<MenuItem.Header> <MenuItem.Header>
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<materialDesign:PackIcon <materialDesign:PackIcon
x:Name="menuModeGlobal2" x:Name="menuModeGlobal2"
Margin="0,0,8,0" Margin="0,0,8,0"
Kind="Check" /> Kind="Check" />
<TextBlock Text="{x:Static resx:ResUI.menuModeGlobal}" /> <TextBlock Text="{x:Static resx:ResUI.menuModeGlobal}" />
</StackPanel> </StackPanel>
</MenuItem.Header> </MenuItem.Header>
</MenuItem> </MenuItem>
<MenuItem x:Name="menuModeDirect"> <MenuItem x:Name="menuModeDirect">
<MenuItem.Header> <MenuItem.Header>
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<materialDesign:PackIcon <materialDesign:PackIcon
x:Name="menuModeDirect2" x:Name="menuModeDirect2"
Margin="0,0,8,0" Margin="0,0,8,0"
Kind="Check" /> Kind="Check" />
<TextBlock Text="{x:Static resx:ResUI.menuModeDirect}" /> <TextBlock Text="{x:Static resx:ResUI.menuModeDirect}" />
</StackPanel> </StackPanel>
</MenuItem.Header> </MenuItem.Header>
</MenuItem> </MenuItem>
<MenuItem x:Name="menuModeNothing"> <MenuItem x:Name="menuModeNothing">
<MenuItem.Header> <MenuItem.Header>
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<materialDesign:PackIcon <materialDesign:PackIcon
x:Name="menuModeNothing2" x:Name="menuModeNothing2"
Margin="0,0,8,0" Margin="0,0,8,0"
Kind="Check" /> Kind="Check" />
<TextBlock Text="{x:Static resx:ResUI.menuModeNothing}" /> <TextBlock Text="{x:Static resx:ResUI.menuModeNothing}" />
</StackPanel> </StackPanel>
</MenuItem.Header> </MenuItem.Header>
</MenuItem> </MenuItem>
<Separator /> <Separator />
<MenuItem x:Name="menuAddProfileViaScan" Header="{x:Static resx:ResUI.menuAddProfileViaScan}" /> <MenuItem x:Name="menuAddProfileViaScan" Header="{x:Static resx:ResUI.menuAddProfileViaScan}" />
<MenuItem x:Name="menuSubUpdate" Header="{x:Static resx:ResUI.menuSubUpdate}" /> <MenuItem x:Name="menuSubUpdate" Header="{x:Static resx:ResUI.menuSubUpdate}" />
<MenuItem x:Name="menuSubUpdateViaProxy" Header="{x:Static resx:ResUI.menuSubUpdateViaProxy}" /> <MenuItem x:Name="menuSubUpdateViaProxy" Header="{x:Static resx:ResUI.menuSubUpdateViaProxy}" />
<Separator /> <Separator />
<MenuItem <MenuItem
x:Name="menuExit" x:Name="menuExit"
Click="menuExit_Click" Click="menuExit_Click"
Header="{x:Static resx:ResUI.menuExit}" /> Header="{x:Static resx:ResUI.menuExit}" />
</ContextMenu> </ContextMenu>
</tb:TaskbarIcon.ContextMenu> </tb:TaskbarIcon.ContextMenu>
</tb:TaskbarIcon> </tb:TaskbarIcon>
<materialDesign:Snackbar x:Name="MainSnackbar" MessageQueue="{materialDesign:MessageQueue}" /> <materialDesign:Snackbar x:Name="MainSnackbar" MessageQueue="{materialDesign:MessageQueue}" />
</Grid>
</Grid> </Grid>
</materialDesign:DialogHost> </materialDesign:DialogHost>
</reactiveui:ReactiveWindow> </reactiveui:ReactiveWindow>