mirror of
https://github.com/BeyondDimension/SteamTools.git
synced 2026-10-29 07:27:36 +08:00
fix User Avater
This commit is contained in:
@@ -15,165 +15,165 @@
|
||||
FontFamily="{Binding Source={x:Static ms:UISettings.FontName},Path=Value, Mode=OneWay,Converter={StaticResource NameToFontFamilyConverter}}"
|
||||
x:DataType="vm:MainWindowViewModel"
|
||||
x:CompileBindings="True">
|
||||
<Panel>
|
||||
<!--Background-->
|
||||
<DockPanel HorizontalAlignment="Stretch">
|
||||
<ExperimentalAcrylicBorder IsHitTestVisible="False" DockPanel.Dock="Left" Width="240">
|
||||
<ExperimentalAcrylicBorder.Material>
|
||||
<ExperimentalAcrylicMaterial TintColor="{DynamicResource BackgroundColorKey}" MaterialOpacity="0.80" TintOpacity="1" BackgroundSource="None" PlatformTransparencyCompensationLevel="0.5"/>
|
||||
</ExperimentalAcrylicBorder.Material>
|
||||
</ExperimentalAcrylicBorder>
|
||||
<ExperimentalAcrylicBorder IsHitTestVisible="False">
|
||||
<ExperimentalAcrylicBorder.Material>
|
||||
<ExperimentalAcrylicMaterial TintColor="{DynamicResource ThemeColorKey}" MaterialOpacity="0.80" TintOpacity="1" BackgroundSource="None" PlatformTransparencyCompensationLevel="0.5"/>
|
||||
</ExperimentalAcrylicBorder.Material>
|
||||
</ExperimentalAcrylicBorder>
|
||||
</DockPanel>
|
||||
<Panel>
|
||||
<!--Background-->
|
||||
<DockPanel HorizontalAlignment="Stretch">
|
||||
<ExperimentalAcrylicBorder IsHitTestVisible="False" DockPanel.Dock="Left" Width="240">
|
||||
<ExperimentalAcrylicBorder.Material>
|
||||
<ExperimentalAcrylicMaterial TintColor="{DynamicResource BackgroundColorKey}" MaterialOpacity="0.80" TintOpacity="1" BackgroundSource="None" PlatformTransparencyCompensationLevel="0.5"/>
|
||||
</ExperimentalAcrylicBorder.Material>
|
||||
</ExperimentalAcrylicBorder>
|
||||
<ExperimentalAcrylicBorder IsHitTestVisible="False">
|
||||
<ExperimentalAcrylicBorder.Material>
|
||||
<ExperimentalAcrylicMaterial TintColor="{DynamicResource ThemeColorKey}" MaterialOpacity="0.80" TintOpacity="1" BackgroundSource="None" PlatformTransparencyCompensationLevel="0.5"/>
|
||||
</ExperimentalAcrylicBorder.Material>
|
||||
</ExperimentalAcrylicBorder>
|
||||
</DockPanel>
|
||||
|
||||
<!--Title-->
|
||||
<Grid ColumnDefinitions="240,*,Auto" ZIndex="0">
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Height="110" VerticalAlignment="Top">
|
||||
<Image Source="/Application/UI/Assets/Icon.ico" Height="64" Width="64" VerticalAlignment="Center" Margin="-8,0,0,0"/>
|
||||
<Label Content="{ReflectionBinding Path=Title}" Foreground="{DynamicResource HighlightForegroundBrushKey}" VerticalContentAlignment="Center" FontSize="20" Margin="8,0,0,0"/>
|
||||
</StackPanel>
|
||||
<TextBlock IsHitTestVisible="False" Grid.Column="1" Text="{ReflectionBinding SelectedItem.Name}" Foreground="{DynamicResource HighlightForegroundBrushKey}" Padding="15 8 0 0" FontSize="28"/>
|
||||
<StackPanel Grid.Column="2" x:Name="titleMenu" Orientation="Horizontal" VerticalAlignment="Top">
|
||||
<!--<Menu Items="{Binding SelectedItem.MenuItems}" IsVisible="{Binding !SelectedItem.MenuItems,Converter={StaticResource IsNullConverter}}" Classes="BindMenu">
|
||||
<!--Title-->
|
||||
<Grid ColumnDefinitions="240,*,Auto" ZIndex="0">
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Height="110" VerticalAlignment="Top">
|
||||
<Image Source="/Application/UI/Assets/Icon.ico" Height="64" Width="64" VerticalAlignment="Center" Margin="-8,0,0,0"/>
|
||||
<Label Content="{ReflectionBinding Path=Title}" Foreground="{DynamicResource HighlightForegroundBrushKey}" VerticalContentAlignment="Center" FontSize="20" Margin="8,0,0,0"/>
|
||||
</StackPanel>
|
||||
<TextBlock IsHitTestVisible="False" Grid.Column="1" Text="{ReflectionBinding SelectedItem.Name}" Foreground="{DynamicResource HighlightForegroundBrushKey}" Padding="15 8 0 0" FontSize="28"/>
|
||||
<StackPanel Grid.Column="2" x:Name="titleMenu" Orientation="Horizontal" VerticalAlignment="Top">
|
||||
<!--<Menu Items="{Binding SelectedItem.MenuItems}" IsVisible="{Binding !SelectedItem.MenuItems,Converter={StaticResource IsNullConverter}}" Classes="BindMenu">
|
||||
</Menu>-->
|
||||
<Menu Classes="BindMenu">
|
||||
<MenuItem Items="{Binding SelectedItem.MenuItems}" Classes="BindItem"
|
||||
IsVisible="{Binding !SelectedItem.MenuItems,Converter={StaticResource IsNullConverter}}">
|
||||
<MenuItem.Header>
|
||||
<PathIcon Data="{StaticResource SettingsDrawing}" Width="14"></PathIcon>
|
||||
</MenuItem.Header>
|
||||
</MenuItem>
|
||||
<Menu Classes="BindMenu">
|
||||
<MenuItem Items="{Binding SelectedItem.MenuItems}" Classes="BindItem"
|
||||
IsVisible="{Binding !SelectedItem.MenuItems,Converter={StaticResource IsNullConverter}}">
|
||||
<MenuItem.Header>
|
||||
<PathIcon Data="{StaticResource SettingsDrawing}" Width="14"></PathIcon>
|
||||
</MenuItem.Header>
|
||||
</MenuItem>
|
||||
|
||||
<MenuItem x:Name="userBtn" Command="{Binding OpenUserMenu}">
|
||||
<MenuItem.Header>
|
||||
<Image
|
||||
Source="{ReflectionBinding Path=AvaterPath, Source={x:Static service:UserService.Current},Mode=OneWay,Converter={StaticResource BitmapAssetValueConverter},ConverterParameter=20}"
|
||||
Stretch="Uniform"
|
||||
Height="20"
|
||||
Width="20">
|
||||
<!--<Image.Clip>
|
||||
<MenuItem x:Name="userBtn" Command="{Binding OpenUserMenu}">
|
||||
<MenuItem.Header>
|
||||
<Image
|
||||
Source="{ReflectionBinding Path=AvaterPath, Source={x:Static service:UserService.Current},Mode=OneWay,Converter={StaticResource BitmapAssetValueConverter},ConverterParameter=20}"
|
||||
Stretch="Uniform"
|
||||
Height="20"
|
||||
Width="20">
|
||||
<!--<Image.Clip>
|
||||
<EllipseGeometry Rect="0,0,20,20" />
|
||||
</Image.Clip>-->
|
||||
</Image>
|
||||
</MenuItem.Header>
|
||||
</MenuItem>
|
||||
</Menu>
|
||||
<Popup IsOpen="{Binding IsOpenUserMenu,Mode=TwoWay, FallbackValue=False}"
|
||||
StaysOpen="False" Width="300"
|
||||
PlacementTarget="userBtn"
|
||||
HorizontalOffset="-250"
|
||||
IsLightDismissEnabled="True">
|
||||
<Border Background="{DynamicResource ThemeBrushKey}"
|
||||
HorizontalAlignment="Stretch"
|
||||
CornerRadius="{DynamicResource OverlayCornerRadius}">
|
||||
<StackPanel>
|
||||
<Panel Width="200" Margin="5">
|
||||
<StackPanel Spacing="8">
|
||||
<Image Source="{ReflectionBinding Path=User, Source={x:Static service:UserService.Current}}, Converter={StaticResource UserAvatarValueConverter}}" Height="100" Width="100" HorizontalAlignment="Center">
|
||||
<Image.Clip>
|
||||
<EllipseGeometry Rect="0,0,100,100" />
|
||||
</Image.Clip>
|
||||
</Image>
|
||||
<Button
|
||||
Content="{ReflectionBinding Path=User.NickName,Source={x:Static service:UserService.Current}}"
|
||||
FontSize="16"
|
||||
HorizontalAlignment="Center"
|
||||
Foreground="{DynamicResource HighlightForegroundBrushKey}"></Button>
|
||||
</StackPanel>
|
||||
</Panel>
|
||||
<ListBox SelectionMode="Single" Background="{DynamicResource ThemeBrushKey}">
|
||||
<ListBoxItem>
|
||||
<Button
|
||||
Classes="CodeButton"
|
||||
Content="{ReflectionBinding Path=Res.UserProfile,Mode=OneWay,Source={x:Static resx:R.Current}}"
|
||||
Command="{ReflectionBinding Path=ShowWindow,Source={x:Static service:UserService.Current}}"
|
||||
CommandParameter="UserProfile"></Button>
|
||||
</ListBoxItem>
|
||||
<ListBoxItem>
|
||||
<Button
|
||||
Classes="CodeButton"
|
||||
Content="{ReflectionBinding Path=Res.User_ChangePhoneNum,Mode=OneWay,Source={x:Static resx:R.Current}}"
|
||||
Command="{ReflectionBinding Path=ShowWindow,Source={x:Static service:UserService.Current}}"
|
||||
CommandParameter="ChangeBindPhoneNumber"></Button>
|
||||
</ListBoxItem>
|
||||
<ListBoxItem>
|
||||
<Button
|
||||
Classes="CodeButton"
|
||||
Content="{ReflectionBinding Path=Res.DelAccount,Mode=OneWay,Source={x:Static resx:R.Current}}"
|
||||
Command="{ReflectionBinding Path=ShowWindow,Source={x:Static service:UserService.Current}}"
|
||||
CommandParameter="ChangeBindPhoneNumber"></Button>
|
||||
</ListBoxItem>
|
||||
<ListBoxItem>
|
||||
<Button
|
||||
Classes="CodeButton"
|
||||
Content="{ReflectionBinding Path=Res.SignOut,Mode=OneWay,Source={x:Static resx:R.Current}}"
|
||||
Command="{ReflectionBinding Path=SignOut,Source={x:Static service:UserService.Current}}"></Button>
|
||||
</ListBoxItem>
|
||||
</ListBox>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</Popup>
|
||||
</Image>
|
||||
</MenuItem.Header>
|
||||
</MenuItem>
|
||||
</Menu>
|
||||
<Popup IsOpen="{Binding IsOpenUserMenu,Mode=TwoWay, FallbackValue=False}"
|
||||
StaysOpen="False" Width="300"
|
||||
PlacementTarget="userBtn"
|
||||
HorizontalOffset="-250"
|
||||
IsLightDismissEnabled="True">
|
||||
<Border Background="{DynamicResource ThemeBrushKey}"
|
||||
HorizontalAlignment="Stretch"
|
||||
CornerRadius="{DynamicResource OverlayCornerRadius}">
|
||||
<StackPanel>
|
||||
<Panel Width="200" Margin="5">
|
||||
<StackPanel Spacing="8">
|
||||
<Image Source="{ReflectionBinding Path=AvaterPath, Source={x:Static service:UserService.Current},Mode=OneWay,Converter={StaticResource BitmapAssetValueConverter},ConverterParameter=100}" Height="100" Width="100" HorizontalAlignment="Center">
|
||||
<Image.Clip>
|
||||
<EllipseGeometry Rect="0,0,100,100" />
|
||||
</Image.Clip>
|
||||
</Image>
|
||||
<TextBlock
|
||||
Text="{ReflectionBinding Path=User.NickName,Source={x:Static service:UserService.Current}}"
|
||||
FontSize="16"
|
||||
HorizontalAlignment="Center"
|
||||
Foreground="{DynamicResource HighlightForegroundBrushKey}"></TextBlock>
|
||||
</StackPanel>
|
||||
</Panel>
|
||||
<ListBox SelectionMode="Single" Background="{DynamicResource ThemeBrushKey}">
|
||||
<ListBoxItem>
|
||||
<Button
|
||||
Classes="CodeButton"
|
||||
Content="{ReflectionBinding Path=Res.UserProfile,Mode=OneWay,Source={x:Static resx:R.Current}}"
|
||||
Command="{ReflectionBinding Path=ShowWindow,Source={x:Static service:UserService.Current}}"
|
||||
CommandParameter="UserProfile"></Button>
|
||||
</ListBoxItem>
|
||||
<ListBoxItem>
|
||||
<Button
|
||||
Classes="CodeButton"
|
||||
Content="{ReflectionBinding Path=Res.User_ChangePhoneNum,Mode=OneWay,Source={x:Static resx:R.Current}}"
|
||||
Command="{ReflectionBinding Path=ShowWindow,Source={x:Static service:UserService.Current}}"
|
||||
CommandParameter="ChangeBindPhoneNumber"></Button>
|
||||
</ListBoxItem>
|
||||
<ListBoxItem>
|
||||
<Button
|
||||
Classes="CodeButton"
|
||||
Content="{ReflectionBinding Path=Res.DelAccount,Mode=OneWay,Source={x:Static resx:R.Current}}"
|
||||
Command="{ReflectionBinding Path=ShowWindow,Source={x:Static service:UserService.Current}}"
|
||||
CommandParameter="ChangeBindPhoneNumber"></Button>
|
||||
</ListBoxItem>
|
||||
<ListBoxItem>
|
||||
<Button
|
||||
Classes="CodeButton"
|
||||
Content="{ReflectionBinding Path=Res.SignOut,Mode=OneWay,Source={x:Static resx:R.Current}}"
|
||||
Command="{ReflectionBinding Path=SignOut,Source={x:Static service:UserService.Current}}"></Button>
|
||||
</ListBoxItem>
|
||||
</ListBox>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
</Popup>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
|
||||
<!--Content-->
|
||||
<TabControl
|
||||
Items="{Binding TabItems}"
|
||||
SelectedItem="{Binding SelectedItem}"
|
||||
Margin="0 25 0 0"
|
||||
Classes="NavBar">
|
||||
<TabControl.DataTemplates>
|
||||
<DataTemplate DataType="vm:DebugWebViewPageViewModel">
|
||||
<pages:DebugWebViewPage/>
|
||||
</DataTemplate>
|
||||
<DataTemplate DataType="vm:ProxyScriptManagePageViewModel">
|
||||
<pages:ProxyScriptManagePage/>
|
||||
</DataTemplate>
|
||||
<DataTemplate DataType="vm:DebugPageViewModel">
|
||||
<pages:DebugPage/>
|
||||
</DataTemplate>
|
||||
<DataTemplate DataType="vm:AboutPageViewModel">
|
||||
<pages:AboutPage/>
|
||||
</DataTemplate>
|
||||
<DataTemplate DataType="vm:SettingsPageViewModel">
|
||||
<pages:SettingsPage/>
|
||||
</DataTemplate>
|
||||
<DataTemplate DataType="vm:StartPageViewModel">
|
||||
<pages:StartPage/>
|
||||
</DataTemplate>
|
||||
<DataTemplate DataType="vm:SteamAccountPageViewModel">
|
||||
<pages:SteamAccountPage/>
|
||||
</DataTemplate>
|
||||
<DataTemplate DataType="vm:GameListPageViewModel">
|
||||
<pages:GameListPage/>
|
||||
</DataTemplate>
|
||||
<DataTemplate DataType="vm:CommunityProxyPageViewModel">
|
||||
<pages:CommunityProxyPage/>
|
||||
</DataTemplate>
|
||||
<DataTemplate DataType="vm:LocalAuthPageViewModel">
|
||||
<pages:LocalAuthPage/>
|
||||
</DataTemplate>
|
||||
</TabControl.DataTemplates>
|
||||
<TabControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<DockPanel>
|
||||
<PathIcon Data="{Binding IconKey,Converter={StaticResource DrawingKeyValueConverter}}"
|
||||
Width="18" Height="18"
|
||||
HorizontalAlignment="Left"
|
||||
Margin="0 0 10 0"></PathIcon>
|
||||
<controls:ScrollingTextBlock
|
||||
Text="{Binding Name}"
|
||||
FontSize="14"
|
||||
FontWeight="Regular"></controls:ScrollingTextBlock>
|
||||
</DockPanel>
|
||||
</DataTemplate>
|
||||
</TabControl.ItemTemplate>
|
||||
</TabControl>
|
||||
<!--Toast-->
|
||||
<controls:ToastMessage />
|
||||
</Panel>
|
||||
<!--Content-->
|
||||
<TabControl
|
||||
Items="{Binding TabItems}"
|
||||
SelectedItem="{Binding SelectedItem}"
|
||||
Margin="0 25 0 0"
|
||||
Classes="NavBar">
|
||||
<TabControl.DataTemplates>
|
||||
<DataTemplate DataType="vm:DebugWebViewPageViewModel">
|
||||
<pages:DebugWebViewPage/>
|
||||
</DataTemplate>
|
||||
<DataTemplate DataType="vm:ProxyScriptManagePageViewModel">
|
||||
<pages:ProxyScriptManagePage/>
|
||||
</DataTemplate>
|
||||
<DataTemplate DataType="vm:DebugPageViewModel">
|
||||
<pages:DebugPage/>
|
||||
</DataTemplate>
|
||||
<DataTemplate DataType="vm:AboutPageViewModel">
|
||||
<pages:AboutPage/>
|
||||
</DataTemplate>
|
||||
<DataTemplate DataType="vm:SettingsPageViewModel">
|
||||
<pages:SettingsPage/>
|
||||
</DataTemplate>
|
||||
<DataTemplate DataType="vm:StartPageViewModel">
|
||||
<pages:StartPage/>
|
||||
</DataTemplate>
|
||||
<DataTemplate DataType="vm:SteamAccountPageViewModel">
|
||||
<pages:SteamAccountPage/>
|
||||
</DataTemplate>
|
||||
<DataTemplate DataType="vm:GameListPageViewModel">
|
||||
<pages:GameListPage/>
|
||||
</DataTemplate>
|
||||
<DataTemplate DataType="vm:CommunityProxyPageViewModel">
|
||||
<pages:CommunityProxyPage/>
|
||||
</DataTemplate>
|
||||
<DataTemplate DataType="vm:LocalAuthPageViewModel">
|
||||
<pages:LocalAuthPage/>
|
||||
</DataTemplate>
|
||||
</TabControl.DataTemplates>
|
||||
<TabControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<DockPanel>
|
||||
<PathIcon Data="{Binding IconKey,Converter={StaticResource DrawingKeyValueConverter}}"
|
||||
Width="18" Height="18"
|
||||
HorizontalAlignment="Left"
|
||||
Margin="0 0 10 0"></PathIcon>
|
||||
<controls:ScrollingTextBlock
|
||||
Text="{Binding Name}"
|
||||
FontSize="14"
|
||||
FontWeight="Regular"></controls:ScrollingTextBlock>
|
||||
</DockPanel>
|
||||
</DataTemplate>
|
||||
</TabControl.ItemTemplate>
|
||||
</TabControl>
|
||||
<!--Toast-->
|
||||
<controls:ToastMessage />
|
||||
</Panel>
|
||||
</UserControl>
|
||||
@@ -54,6 +54,7 @@ namespace System.Application.Services
|
||||
|
||||
static string GetAvaterPath(UserInfoDTO? user)
|
||||
{
|
||||
string? value = null;
|
||||
if (user is UserInfoDTO userInfo && userInfo.SteamAccountId.HasValue)
|
||||
{
|
||||
// Steam Avatar
|
||||
@@ -62,9 +63,9 @@ namespace System.Application.Services
|
||||
if (user is IUserDTO user2 && user2.Avatar.HasValue)
|
||||
{
|
||||
// Guid Avatar
|
||||
return ImageUrlHelper.GetImageApiUrlById(user2.Avatar.Value);
|
||||
value = ImageUrlHelper.GetImageApiUrlById(user2.Avatar.Value);
|
||||
}
|
||||
return DefaultAvaterPath;
|
||||
return value ?? DefaultAvaterPath;
|
||||
}
|
||||
|
||||
const string DefaultAvaterPath = "avares://System.Application.SteamTools.Client.Desktop.Avalonia/Application/UI/Assets/AppResources/avater_default.png";
|
||||
|
||||
Reference in New Issue
Block a user