mirror of
https://github.com/BeyondDimension/SteamTools.git
synced 2026-10-28 14:08:16 +08:00
Fix DonateRecord Avatar
This commit is contained in:
@@ -14,9 +14,9 @@
|
||||
<converters:DrawingKeyValueConverter x:Key="DrawingKeyValueConverter" />
|
||||
<converters:BitmapAssetValueConverter x:Key="BitmapAssetValueConverter" />
|
||||
<converters:GuidToUrlConverter x:Key="GuidToUrlConverter" />
|
||||
<converters:GenderEnumValueConverter x:Key="GenderEnumValueConverter" />
|
||||
<converters:StringFormatConverter x:Key="StringFormatConverter" />
|
||||
<converters:SizeConverter x:Key="SizeConverter" />
|
||||
<converters:EnumEqualValueConverter x:Key="EnumEqualValueConverter" />
|
||||
</Application.Resources>
|
||||
<Application.Styles>
|
||||
<!--<FluentTheme Mode="Dark" />-->
|
||||
|
||||
+11
-14
@@ -1,4 +1,4 @@
|
||||
using System.ComponentModel;
|
||||
using System.ComponentModel;
|
||||
using System.Globalization;
|
||||
using System.Reflection;
|
||||
|
||||
@@ -10,25 +10,22 @@ namespace System.Application.Converters
|
||||
{
|
||||
}
|
||||
|
||||
public override object? ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
|
||||
public override object? ConvertTo(ITypeDescriptorContext? context, CultureInfo? culture, object? value, Type destinationType)
|
||||
{
|
||||
if (destinationType == typeof(string))
|
||||
{
|
||||
if (null != value)
|
||||
if (value is not null && value is Enum e)
|
||||
{
|
||||
if (value.GetType().IsEnum)
|
||||
var fi = e.GetType().GetField(e.ToString());
|
||||
|
||||
if (null != fi)
|
||||
{
|
||||
FieldInfo fi = value.GetType().GetField(value.ToString());
|
||||
var attributes =
|
||||
(DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false);
|
||||
|
||||
if (null != fi)
|
||||
{
|
||||
var attributes =
|
||||
(DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false);
|
||||
|
||||
return ((attributes.Length > 0) && (!string.IsNullOrEmpty(attributes[0].Description)))
|
||||
? attributes[0].Description
|
||||
: value.ToString();
|
||||
}
|
||||
return ((attributes.Length > 0) && (!string.IsNullOrEmpty(attributes[0].Description)))
|
||||
? attributes[0].Description
|
||||
: e.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
using Avalonia.Data;
|
||||
using Avalonia.Data.Converters;
|
||||
using System.Globalization;
|
||||
|
||||
namespace System.Application.Converters
|
||||
{
|
||||
public class EnumEqualValueConverter : IValueConverter
|
||||
{
|
||||
object IValueConverter.Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
if (value == null || parameter == null)
|
||||
return false;
|
||||
if (value is Enum)
|
||||
{
|
||||
if (parameter is Enum)
|
||||
{
|
||||
return value.Equals(parameter);
|
||||
}
|
||||
else if (parameter is string)
|
||||
{
|
||||
return value.ToString() == parameter.ToString();
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
object IValueConverter.ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
return BindingOperations.DoNothing;
|
||||
}
|
||||
}
|
||||
}
|
||||
+72
-30
@@ -103,36 +103,78 @@
|
||||
<EllipseGeometry Rect="0,0,64,64" />
|
||||
</gif:Image2.Clip>
|
||||
</gif:Image2>-->
|
||||
<Image x:Name="avatar" Source="avares://System.Application.SteamTools.Client.Avalonia/Application/UI/Assets/AppResources/avatar.jpg"/>
|
||||
<i:Interaction.Behaviors>
|
||||
<ia:DataTriggerBehavior
|
||||
Binding="{Binding Type}"
|
||||
ComparisonCondition="Equal"
|
||||
Value="{x:Static app:ExternalTransactionType.Afdian}">
|
||||
<ia:ChangePropertyAction
|
||||
PropertyName="Source"
|
||||
TargetObject="{ReflectionBinding #avatar}"
|
||||
Value="avares://System.Application.SteamTools.Client.Avalonia/Application/UI/Assets/afdian.png" />
|
||||
</ia:DataTriggerBehavior>
|
||||
<ia:DataTriggerBehavior
|
||||
Binding="{Binding Type}"
|
||||
ComparisonCondition="Equal"
|
||||
Value="{x:Static app:ExternalTransactionType.Ko_fi}">
|
||||
<ia:ChangePropertyAction
|
||||
PropertyName="Source"
|
||||
TargetObject="{ReflectionBinding #avatar}"
|
||||
Value="avares://System.Application.SteamTools.Client.Avalonia/Application/UI/Assets/ko-fi.png" />
|
||||
</ia:DataTriggerBehavior>
|
||||
<ia:DataTriggerBehavior
|
||||
Binding="{Binding Type}"
|
||||
ComparisonCondition="Equal"
|
||||
Value="{x:Static app:ExternalTransactionType.Patreon}">
|
||||
<ia:ChangePropertyAction
|
||||
PropertyName="Source"
|
||||
TargetObject="{ReflectionBinding #avatar}"
|
||||
Value="avares://System.Application.SteamTools.Client.Avalonia/Application/UI/Assets/pateron.png" />
|
||||
</ia:DataTriggerBehavior>
|
||||
</i:Interaction.Behaviors>
|
||||
<Image
|
||||
Width="64"
|
||||
Height="64"
|
||||
Source="avares://System.Application.SteamTools.Client.Avalonia/Application/UI/Assets/afdian.png"
|
||||
IsVisible="{Binding Type,Converter={StaticResource EnumEqualValueConverter},ConverterParameter={x:Static app:ExternalTransactionType.Afdian}}"
|
||||
VerticalAlignment="Center">
|
||||
<Image.Clip>
|
||||
<EllipseGeometry Rect="0,0,64,64" />
|
||||
</Image.Clip>
|
||||
</Image>
|
||||
<Image
|
||||
Width="64"
|
||||
Height="64"
|
||||
Source="avares://System.Application.SteamTools.Client.Avalonia/Application/UI/Assets/ko-fi.png"
|
||||
IsVisible="{Binding Type,Converter={StaticResource EnumEqualValueConverter},ConverterParameter={x:Static app:ExternalTransactionType.Ko_fi}}"
|
||||
VerticalAlignment="Center">
|
||||
<Image.Clip>
|
||||
<EllipseGeometry Rect="0,0,64,64" />
|
||||
</Image.Clip>
|
||||
</Image>
|
||||
<Image
|
||||
Width="64"
|
||||
Height="64"
|
||||
Source="avares://System.Application.SteamTools.Client.Avalonia/Application/UI/Assets/pateron.png"
|
||||
IsVisible="{Binding Type,Converter={StaticResource EnumEqualValueConverter},ConverterParameter={x:Static app:ExternalTransactionType.Patreon}}"
|
||||
VerticalAlignment="Center">
|
||||
<Image.Clip>
|
||||
<EllipseGeometry Rect="0,0,64,64" />
|
||||
</Image.Clip>
|
||||
</Image>
|
||||
|
||||
<!--等待一个DataTriggerBehavior未解决问题才能改进
|
||||
https://github.com/wieslawsoltes/AvaloniaBehaviors/issues/80
|
||||
-->
|
||||
<!--<Image x:Name="avatar"
|
||||
Width="64"
|
||||
Height="64"
|
||||
VerticalAlignment="Center">
|
||||
<Image.Clip>
|
||||
<EllipseGeometry Rect="0,0,64,64" />
|
||||
</Image.Clip>
|
||||
<i:Interaction.Behaviors>
|
||||
<ia:DataTriggerBehavior
|
||||
Binding="{Binding Type,Converter={StaticResource EnumEqualValueConverter},ConverterParameter={x:Static app:ExternalTransactionType.Afdian}}"
|
||||
ComparisonCondition="Equal"
|
||||
Value="True">
|
||||
<ia:ChangePropertyAction
|
||||
PropertyName="Source"
|
||||
TargetObject="{ReflectionBinding #avatar}"
|
||||
Value="avares://System.Application.SteamTools.Client.Avalonia/Application/UI/Assets/afdian.png" />
|
||||
</ia:DataTriggerBehavior>
|
||||
<ia:DataTriggerBehavior
|
||||
Binding="{Binding Type,Converter={StaticResource EnumEqualValueConverter},ConverterParameter={x:Static app:ExternalTransactionType.Ko_fi}}"
|
||||
ComparisonCondition="Equal"
|
||||
Value="True">
|
||||
<ia:ChangePropertyAction
|
||||
PropertyName="Source"
|
||||
TargetObject="{ReflectionBinding #avatar}"
|
||||
Value="avares://System.Application.SteamTools.Client.Avalonia/Application/UI/Assets/ko-fi.png" />
|
||||
</ia:DataTriggerBehavior>
|
||||
<ia:DataTriggerBehavior
|
||||
Binding="{Binding Type,Converter={StaticResource EnumEqualValueConverter},ConverterParameter={x:Static app:ExternalTransactionType.Patreon}}"
|
||||
ComparisonCondition="Equal"
|
||||
Value="True">
|
||||
<ia:ChangePropertyAction
|
||||
PropertyName="Source"
|
||||
TargetObject="{ReflectionBinding #avatar}"
|
||||
Value="avares://System.Application.SteamTools.Client.Avalonia/Application/UI/Assets/pateron.png" />
|
||||
</ia:DataTriggerBehavior>
|
||||
</i:Interaction.Behaviors>
|
||||
</Image>-->
|
||||
|
||||
<StackPanel DockPanel.Dock="Right"
|
||||
Spacing="5"
|
||||
Margin="10">
|
||||
|
||||
+1
-1
@@ -49,7 +49,7 @@
|
||||
</DockPanel>
|
||||
</Border>
|
||||
|
||||
<Separator Classes="Separator"/>
|
||||
<!--<Separator Classes="Separator"/>-->
|
||||
</StackPanel>
|
||||
</ScrollViewer>
|
||||
</UserControl>
|
||||
|
||||
+4
@@ -8,6 +8,7 @@
|
||||
Width="450" Height="520"
|
||||
MinWidth="450" MinHeight="520"
|
||||
x:Class="System.Application.UI.Views.Windows.UserProfileWindow"
|
||||
xmlns:converters="using:System.Application.Converters"
|
||||
xmlns:controls="clr-namespace:System.Application.UI.Views.Controls"
|
||||
xmlns:resx="using:System.Application.UI.Resx"
|
||||
xmlns:ccl_services="using:System.Application.Services"
|
||||
@@ -19,6 +20,9 @@
|
||||
WindowStartupLocation="CenterOwner"
|
||||
x:DataType="vm:UserProfileWindowViewModel"
|
||||
x:CompileBindings="True">
|
||||
<Window.Resources>
|
||||
<converters:GenderEnumValueConverter x:Key="GenderEnumValueConverter" />
|
||||
</Window.Resources>
|
||||
<Panel>
|
||||
<Panel.Styles>
|
||||
<Style Selector="TextBlock.FormItemLabel">
|
||||
|
||||
Reference in New Issue
Block a user