This commit is contained in:
rmbgame
2021-04-28 04:16:29 +08:00
parent 1522292532
commit 2d0eb7b731
3 changed files with 147 additions and 148 deletions
@@ -16,23 +16,23 @@
x:DataType="vm:MainWindowViewModel"
x:CompileBindings="True">
<Panel>
<Image IsHitTestVisible="False"
<!--<Image IsHitTestVisible="False"
Source="avares://System.Application.SteamTools.Client.Desktop.Avalonia/Application/UI/Assets/AppResources/Placeholders/0.png"
HorizontalAlignment="Right"
VerticalAlignment="Bottom"
Stretch="Fill"
Opacity="0.8">
</Image>
</Image>-->
<!--Background-->
<DockPanel HorizontalAlignment="Stretch">
<ExperimentalAcrylicBorder IsHitTestVisible="False" DockPanel.Dock="Left" Width="240">
<ExperimentalAcrylicBorder.Material>
<ExperimentalAcrylicMaterial TintColor="{DynamicResource BackgroundColorKey}" MaterialOpacity="0.2" TintOpacity="1" BackgroundSource="None" PlatformTransparencyCompensationLevel="0.5"/>
<ExperimentalAcrylicMaterial TintColor="{DynamicResource BackgroundColorKey}" MaterialOpacity="0.8" TintOpacity="1"/>
</ExperimentalAcrylicBorder.Material>
</ExperimentalAcrylicBorder>
<ExperimentalAcrylicBorder IsHitTestVisible="False">
<ExperimentalAcrylicBorder.Material>
<ExperimentalAcrylicMaterial TintColor="{DynamicResource ThemeColorKey}" MaterialOpacity="0.2" TintOpacity="1" BackgroundSource="None" PlatformTransparencyCompensationLevel="0.5"/>
<ExperimentalAcrylicMaterial TintColor="{DynamicResource ThemeColorKey}" MaterialOpacity="0.8" TintOpacity="1" BackgroundSource="Digger" PlatformTransparencyCompensationLevel="0.5"/>
</ExperimentalAcrylicBorder.Material>
</ExperimentalAcrylicBorder>
</DockPanel>
@@ -16,163 +16,163 @@
x:DataType="vm:ProxyScriptManagePageViewModel"
x:CompileBindings="True"
x:Class="System.Application.UI.Views.Pages.ProxyScriptManagePage">
<DockPanel>
<DockPanel>
<Border DockPanel.Dock="Top" Classes="paper" Background="{DynamicResource ThemeBrushKey}" Padding="10" Margin="20 0 20 10">
<Border DockPanel.Dock="Top" Classes="paper" Background="{DynamicResource ThemeBrushKey}" Padding="10" Margin="20 0 20 10">
<DockPanel>
<StackPanel Orientation="Horizontal" Spacing="8" HorizontalAlignment="Left">
<controls:ProgressRing IsIndeterminate="True" ToolTip.Tip="{ReflectionBinding Path=Res.Script_ImportLoading,Mode=OneWay,Source={x:Static resx:R.Current}}" HorizontalAlignment="Stretch" Height="30" Width="30" IsVisible="{Binding Source={x:Static service:ProxyService.Current},Path=IsLoading,Mode=OneWay}" />
<Button IsVisible="{Binding Source={x:Static service:ProxyService.Current},Path=!IsLoading,Mode=OneWay}" Background="Transparent" Cursor="Hand" Click="AddNewScriptButton_Click"
ToolTip.Tip="{ReflectionBinding Path=Res.Import,Mode=OneWay,Source={x:Static resx:R.Current}}">
<PathIcon Width="16" Data="{StaticResource AddDrawing}" />
</Button>
<Button Background="Transparent" Cursor="Hand"
Command="{ReflectionBinding RefreshScriptButton}"
ToolTip.Tip="{ReflectionBinding Path=Res.Refresh,Mode=OneWay,Source={x:Static resx:R.Current}}">
<PathIcon Width="16" Data="{StaticResource RefreshDrawing}" />
</Button>
<Button Background="Transparent" Cursor="Hand"
Command="{Binding ScriptStoreCommand}"
ToolTip.Tip="{ReflectionBinding Path=Res.Script_Shop,Mode=OneWay,Source={x:Static resx:R.Current}}">
<PathIcon Width="16" Data="{StaticResource JavaScriptDrawing}" />
</Button>
</StackPanel>
<DockPanel>
<StackPanel Orientation="Horizontal" Spacing="8" HorizontalAlignment="Left">
<controls:ProgressRing IsIndeterminate="True" ToolTip.Tip="{ReflectionBinding Path=Res.Script_ImportLoading,Mode=OneWay,Source={x:Static resx:R.Current}}" HorizontalAlignment="Stretch" Height="30" Width="30" IsVisible="{Binding Source={x:Static service:ProxyService.Current},Path=IsLoading,Mode=OneWay}" />
<Button IsVisible="{Binding Source={x:Static service:ProxyService.Current},Path=!IsLoading,Mode=OneWay}" Background="Transparent" Cursor="Hand" Click="AddNewScriptButton_Click"
ToolTip.Tip="{ReflectionBinding Path=Res.Import,Mode=OneWay,Source={x:Static resx:R.Current}}">
<PathIcon Width="16" Data="{StaticResource AddDrawing}" />
</Button>
<Button Background="Transparent" Cursor="Hand"
Command="{ReflectionBinding RefreshScriptButton}"
ToolTip.Tip="{ReflectionBinding Path=Res.Refresh,Mode=OneWay,Source={x:Static resx:R.Current}}">
<PathIcon Width="16" Data="{StaticResource RefreshDrawing}" />
</Button>
<Button Background="Transparent" Cursor="Hand"
Command="{Binding ScriptStoreCommand}"
ToolTip.Tip="{ReflectionBinding Path=Res.Script_Shop,Mode=OneWay,Source={x:Static resx:R.Current}}">
<PathIcon Width="16" Data="{StaticResource JavaScriptDrawing}" />
</Button>
</StackPanel>
<StackPanel Orientation="Horizontal" Spacing="15" HorizontalAlignment="Right" VerticalAlignment="Center">
<TextBox Watermark="{ReflectionBinding Path=Res.Search,Mode=OneWay,Source={x:Static resx:R.Current}}" Text="{CompiledBinding SearchText,Mode=TwoWay}" VerticalAlignment="Center" MinWidth="300">
<TextBox.InnerLeftContent>
<PathIcon Data="{StaticResource SearchDrawing}"
Width="20" Height="20"
Opacity="0.8"
VerticalAlignment="Top" HorizontalAlignment="Left"
Margin="15,8,0,0" />
</TextBox.InnerLeftContent>
</TextBox>
<!--<TextBlock Text="{ReflectionBinding Path=Res.CommunityFix_EnableScriptService,Mode=OneWay,Source={x:Static resx:R.Current}}" VerticalAlignment="Center"></TextBlock>-->
<ToggleSwitch Content="" OnContent="{ReflectionBinding Path=Res.CommunityFix_EnableScriptService,Mode=OneWay,Source={x:Static resx:R.Current}}" OffContent="{ReflectionBinding Path=Res.CommunityFix_EnableScriptService,Mode=OneWay,Source={x:Static resx:R.Current}}" IsChecked="{Binding Source={x:Static service:ProxyService.Current},Path=IsEnableScript}"></ToggleSwitch>
</StackPanel>
</DockPanel>
</Border>
<Panel>
<StackPanel Orientation="Horizontal" Spacing="15" HorizontalAlignment="Right" VerticalAlignment="Center">
<TextBox Watermark="{ReflectionBinding Path=Res.Search,Mode=OneWay,Source={x:Static resx:R.Current}}" Text="{CompiledBinding SearchText,Mode=TwoWay}" VerticalAlignment="Center" MinWidth="300">
<TextBox.InnerLeftContent>
<PathIcon Data="{StaticResource SearchDrawing}"
Width="20" Height="20"
Opacity="0.8"
VerticalAlignment="Top" HorizontalAlignment="Left"
Margin="15,8,0,0" />
</TextBox.InnerLeftContent>
</TextBox>
<!--<TextBlock Text="{ReflectionBinding Path=Res.CommunityFix_EnableScriptService,Mode=OneWay,Source={x:Static resx:R.Current}}" VerticalAlignment="Center"></TextBlock>-->
<ToggleSwitch Content="" OnContent="{ReflectionBinding Path=Res.CommunityFix_EnableScriptService,Mode=OneWay,Source={x:Static resx:R.Current}}" OffContent="{ReflectionBinding Path=Res.CommunityFix_EnableScriptService,Mode=OneWay,Source={x:Static resx:R.Current}}" IsChecked="{Binding Source={x:Static service:ProxyService.Current},Path=IsEnableScript}"></ToggleSwitch>
</StackPanel>
</DockPanel>
</Border>
<Panel>
<TextBlock IsVisible="{Binding IsProxyScriptsEmpty}"
Text="{ReflectionBinding Path=Res.ScriptConfig_ScriptEmptyTip,Mode=OneWay,Source={x:Static resx:R.Current}}"
TextWrapping="WrapWithOverflow"
VerticalAlignment="Center" HorizontalAlignment="Center"></TextBlock>
<TextBlock IsVisible="{Binding IsProxyScriptsEmpty}"
Text="{ReflectionBinding Path=Res.ScriptConfig_ScriptEmptyTip,Mode=OneWay,Source={x:Static resx:R.Current}}"
TextWrapping="WrapWithOverflow"
VerticalAlignment="Center" HorizontalAlignment="Center"></TextBlock>
<ScrollViewer HorizontalScrollBarVisibility="Disabled" Padding="{StaticResource ScrollMargin}">
<ItemsRepeater Items="{Binding ProxyScripts}">
<ItemsRepeater.Layout>
<WrapLayout VerticalSpacing="20" HorizontalSpacing="20" Orientation="Horizontal"/>
</ItemsRepeater.Layout>
<ItemsRepeater.ItemTemplate>
<DataTemplate>
<Border Width="450" Classes="paper" Background="{DynamicResource ThemeBrushKey}" Padding="20 10">
<DockPanel>
<Image Source="{Binding Icon}" DockPanel.Dock="Left"></Image>
<StackPanel Spacing="8" DockPanel.Dock="Right">
<DockPanel>
<controls:ScrollingTextBlock
Width="{Binding $parent.Width}"
Text="{Binding Name,Mode=OneWay}"
FontSize="16"
VerticalAlignment="Center"
Foreground="{DynamicResource HighlightForegroundBrushKey}"/>
<ScrollViewer HorizontalScrollBarVisibility="Disabled" Padding="{StaticResource ScrollMargin}">
<ItemsRepeater Items="{Binding ProxyScripts}">
<ItemsRepeater.Layout>
<WrapLayout VerticalSpacing="20" HorizontalSpacing="20" Orientation="Horizontal"/>
</ItemsRepeater.Layout>
<ItemsRepeater.ItemTemplate>
<DataTemplate>
<Border Width="450" Classes="paper" Background="{DynamicResource ThemeBrushKey}" Padding="20 10">
<DockPanel>
<Image Source="{Binding Icon}" DockPanel.Dock="Left"></Image>
<StackPanel Spacing="8" DockPanel.Dock="Right">
<DockPanel>
<controls:ScrollingTextBlock
Width="{Binding $parent.Width}"
Text="{Binding Name,Mode=OneWay}"
FontSize="16"
VerticalAlignment="Center"
Foreground="{DynamicResource HighlightForegroundBrushKey}"/>
<WrapPanel HorizontalAlignment="Right" VerticalAlignment="Center">
<TextBlock
Text="{Binding Author}"
FontSize="14"
VerticalAlignment="Center"
Foreground="{DynamicResource HighlightForegroundBrushKey}"/>
<WrapPanel HorizontalAlignment="Right" VerticalAlignment="Center">
<TextBlock
Text="{Binding Author}"
FontSize="14"
VerticalAlignment="Center"
Foreground="{DynamicResource HighlightForegroundBrushKey}"/>
<TextBlock Text=" / v" FontSize="14"></TextBlock>
<TextBlock
Text="{Binding Version}"
FontSize="14"
VerticalAlignment="Center"
Foreground="{DynamicResource HighlightForegroundBrushKey}"/>
</WrapPanel>
</DockPanel>
<TextBlock Text=" / v" FontSize="14"></TextBlock>
<TextBlock
Text="{Binding Version}"
FontSize="14"
VerticalAlignment="Center"
Foreground="{DynamicResource HighlightForegroundBrushKey}"/>
</WrapPanel>
</DockPanel>
<Separator Classes="Separator" Margin="0 0 0 5"></Separator>
<Separator Classes="Separator" Margin="0 0 0 5"></Separator>
<TextBlock
Width="{Binding $parent.Width}"
TextWrapping="WrapWithOverflow"
Text="{Binding Description}"
FontSize="12"
Foreground="{DynamicResource HighlightForegroundBrushKey}"/>
<TextBlock
Width="{Binding $parent.Width}"
TextWrapping="WrapWithOverflow"
Text="{Binding Description}"
FontSize="12"
Foreground="{DynamicResource HighlightForegroundBrushKey}"/>
<DockPanel VerticalAlignment="Bottom">
<StackPanel Orientation="Horizontal" Spacing="10">
<ToggleSwitch OnContent="" OffContent="" IsChecked="{Binding Enable,Mode=TwoWay}">
</ToggleSwitch>
<Button Background="Transparent" Cursor="Hand"
Command="{ReflectionBinding #u.DataContext.EditScriptItemButton}"
CommandParameter="{Binding}"
ToolTip.Tip="{ReflectionBinding Path=Res.Script_Edit,Mode=OneWay,Source={x:Static resx:R.Current}}">
<PathIcon Width="20" Data="{StaticResource CodeDrawing}" />
</Button>
<DockPanel VerticalAlignment="Bottom">
<StackPanel Orientation="Horizontal" Spacing="10">
<ToggleSwitch OnContent="" OffContent="" IsChecked="{Binding Enable,Mode=TwoWay}">
</ToggleSwitch>
<Button Background="Transparent" Cursor="Hand"
Command="{ReflectionBinding #u.DataContext.EditScriptItemButton}"
CommandParameter="{Binding}"
ToolTip.Tip="{ReflectionBinding Path=Res.Script_Edit,Mode=OneWay,Source={x:Static resx:R.Current}}">
<PathIcon Width="20" Data="{StaticResource CodeDrawing}" />
</Button>
<Button Background="Transparent" Cursor="Hand"
Command="{ReflectionBinding #u.DataContext.RefreshScriptItemButton}"
CommandParameter="{Binding}"
ToolTip.Tip="{ReflectionBinding Path=Res.Script_Refresh,Mode=OneWay,Source={x:Static resx:R.Current}}">
<PathIcon Width="16" Data="{StaticResource RefreshDrawing}" />
</Button>
<Button Background="Transparent" Cursor="Hand"
Command="{ReflectionBinding #u.DataContext.RefreshScriptItemButton}"
CommandParameter="{Binding}"
ToolTip.Tip="{ReflectionBinding Path=Res.Script_Refresh,Mode=OneWay,Source={x:Static resx:R.Current}}">
<PathIcon Width="16" Data="{StaticResource RefreshDrawing}" />
</Button>
<Button Background="Transparent" Cursor="Hand"
Command="{ReflectionBinding #u.DataContext.OpenHomeScriptItemButton}"
CommandParameter="{Binding}"
ToolTip.Tip="{ReflectionBinding Path=Res.Script_Home,Mode=OneWay,Source={x:Static resx:R.Current}}">
<PathIcon Width="16" Data="{StaticResource HomeDrawing}" />
</Button>
<Button Background="Transparent" Cursor="Hand"
Command="{ReflectionBinding #u.DataContext.OpenHomeScriptItemButton}"
CommandParameter="{Binding}"
ToolTip.Tip="{ReflectionBinding Path=Res.Script_Home,Mode=OneWay,Source={x:Static resx:R.Current}}">
<PathIcon Width="16" Data="{StaticResource HomeDrawing}" />
</Button>
<Button Background="Transparent" Cursor="Hand" HorizontalAlignment="Right"
Command="{ReflectionBinding #u.DataContext.DeleteScriptItemButton}"
CommandParameter="{Binding}"
ToolTip.Tip="{ReflectionBinding Path=Res.Delete,Mode=OneWay,Source={x:Static resx:R.Current}}">
<PathIcon Width="20" Data="{StaticResource DeleteDrawing}" />
</Button>
<Button Background="Transparent" Cursor="Hand" HorizontalAlignment="Right"
Command="{ReflectionBinding #u.DataContext.DeleteScriptItemButton}"
CommandParameter="{Binding}"
ToolTip.Tip="{ReflectionBinding Path=Res.Delete,Mode=OneWay,Source={x:Static resx:R.Current}}">
<PathIcon Width="20" Data="{StaticResource DeleteDrawing}" />
</Button>
</StackPanel>
</StackPanel>
<WrapPanel
DockPanel.Dock="Right"
HorizontalAlignment="Right"
VerticalAlignment="Center"
ToolTip.Tip="{ReflectionBinding Path=Res.Script_Update,Mode=OneWay,Source={x:Static resx:R.Current}}"
IsVisible="{Binding IsUpdate}">
<!--<Button Background="Transparent" IsVisible="{Binding IsUpdate}" Cursor="Hand" HorizontalAlignment="Right"
<WrapPanel
DockPanel.Dock="Right"
HorizontalAlignment="Right"
VerticalAlignment="Center"
ToolTip.Tip="{ReflectionBinding Path=Res.Script_Update,Mode=OneWay,Source={x:Static resx:R.Current}}"
IsVisible="{Binding IsUpdate}">
<!--<Button Background="Transparent" IsVisible="{Binding IsUpdate}" Cursor="Hand" HorizontalAlignment="Right"
Command="{ReflectionBinding #u.DataContext.DownloadScriptItemButton}"
CommandParameter="{Binding}"
ToolTip.Tip="{ReflectionBinding Path=Res.Script_Update,Mode=OneWay,Source={x:Static resx:R.Current}}">
<PathIcon Width="20" Height="20" Data="{StaticResource DownloadDrawing}" />
</Button>-->
<Button Classes="Hyperlink"
Command="{ReflectionBinding #u.DataContext.DownloadScriptItemButton}"
CommandParameter="{Binding}"
Content="{Binding NewVersion,StringFormat={}v{0}}"
FontSize="{DynamicResource FontSizeH8}"
VerticalAlignment="Center"
Foreground="{DynamicResource HighlightForegroundBrushKey}"/>
<Ellipse VerticalAlignment="Center"
HorizontalAlignment="Center"
Height="6" Width="6" Margin="5 0"
Fill="{DynamicResource ValidationErrorColorKey}">
</Ellipse>
</WrapPanel>
</DockPanel>
</StackPanel>
</DockPanel>
</Border>
</DataTemplate>
</ItemsRepeater.ItemTemplate>
</ItemsRepeater>
</ScrollViewer>
</Panel>
</DockPanel>
<Button Classes="Hyperlink"
Command="{ReflectionBinding #u.DataContext.DownloadScriptItemButton}"
CommandParameter="{Binding}"
Content="{Binding NewVersion,StringFormat={}v{0}}"
FontSize="{DynamicResource FontSizeH8}"
VerticalAlignment="Center"
Foreground="{DynamicResource HighlightForegroundBrushKey}"/>
<Ellipse VerticalAlignment="Center"
HorizontalAlignment="Center"
Height="6" Width="6" Margin="5 0"
Fill="{DynamicResource ValidationErrorColorKey}">
</Ellipse>
</WrapPanel>
</DockPanel>
</StackPanel>
</DockPanel>
</Border>
</DataTemplate>
</ItemsRepeater.ItemTemplate>
</ItemsRepeater>
</ScrollViewer>
</Panel>
</DockPanel>
</UserControl>
@@ -91,7 +91,7 @@ namespace System.Application.UI.ViewModels
}
#endif
var users = SteamUsers.ToArray();
var users = SteamUsers.OrderByDescending(o => o.LastLoginTime).ToArray();
for (var i = 0; i < SteamUsers.Count; i++)
{
var temp = users[i];
@@ -111,10 +111,10 @@ namespace System.Application.UI.ViewModels
users[i].Remark = remark;
users[i].AvatarFullStream = httpService.GetImageAsync(users[i].AvatarFull, ImageChannelType.SteamAvatars);
}
SteamUsers = new ObservableCollection<SteamUser>(
users.OrderByDescending(o => o.LastLoginTime).ToList());
foreach (var item in SteamUsers)
SteamUsers = new ObservableCollection<SteamUser>(users);
foreach (var item in users)
{
item.MiniProfile = await webApiService.GetUserMiniProfile(item.SteamId3_Int);
var miniProfile = item.MiniProfile;
@@ -125,8 +125,7 @@ namespace System.Application.UI.ViewModels
}
}
SteamUsers = new ObservableCollection<SteamUser>(
users.OrderByDescending(o => o.LastLoginTime).ToList());
SteamUsers = new ObservableCollection<SteamUser>(users);
this.WhenAnyValue(x => x.SteamUsers)
.Subscribe(items => items?