Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 44ee8a0

Browse files
committed
v1版本令牌导入修复
布局性能调优 令牌交易确认实现
1 parent 1bd82b4 commit 44ee8a0

20 files changed

Lines changed: 1432 additions & 1310 deletions

File tree

System.Application.SteamTools.Client.Desktop.Avalonia/Application/Converters/BitmapAssetValueConverter.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System.Globalization;
22
using System.IO;
33
using System.Linq;
4+
using System.Net;
45
using System.Reflection;
56
using Avalonia;
67
using Avalonia.Data.Converters;
@@ -25,6 +26,13 @@ public class BitmapAssetValueConverter : IValueConverter
2526
{
2627
return new Bitmap(rawUri);
2728
}
29+
else if (rawUri.StartsWith("http://") || rawUri.StartsWith("https://"))
30+
{
31+
using var web = new WebClient();
32+
var bt = web.DownloadData(rawUri);
33+
using var stream = new MemoryStream(bt);
34+
return new Bitmap(stream);
35+
}
2836
else if (rawUri.StartsWith("avares://"))
2937
{
3038
uri = new Uri(rawUri);

System.Application.SteamTools.Client.Desktop.Avalonia/Application/UI/Views/Controls/ScrollingTextBlock.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,8 @@ public override void Render(DrawingContext context)
137137
var constraints = this.Bounds.Deflate(Padding);
138138
var constraintsWidth = constraints.Width;
139139

140-
_isConstrained = _textWidth >= constraintsWidth;
140+
//让文字不要在宽度合适的时候滚动
141+
_isConstrained = _textWidth > constraintsWidth + 1;
141142

142143
if (_isConstrained & !_waiting)
143144
{
@@ -161,7 +162,7 @@ public override void Render(DrawingContext context)
161162
else
162163
{
163164
_animate = false;
164-
165+
165166
using (context.PushPostTransform(Matrix.CreateTranslation(padding.Left, padding.Top)))
166167
TextLayout.Draw(context);
167168
}

System.Application.SteamTools.Client.Desktop.Avalonia/Application/UI/Views/MainView.axaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@
5151
</Template>
5252
</Setter.Value>
5353
</Setter>
54-
<Setter Property="Header" Value="{Binding Header}"/>
55-
<Setter Property="Items" Value="{Binding Items}"/>
54+
<Setter Property="Header" Value="{Binding Header,Mode=OneWay}"/>
55+
<Setter Property="Items" Value="{Binding Items,Mode=OneWay}"/>
5656
<Setter Property="Command" Value="{Binding Command}"/>
5757
<Setter Property="CommandParameter" Value="{Binding CommandParameter}"/>
5858
</Style>

System.Application.SteamTools.Client.Desktop.Avalonia/Application/UI/Views/Pages/CommunityProxyPage.axaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
</ItemsRepeater.Layout>
2323
<ItemsRepeater.ItemTemplate>
2424
<DataTemplate>
25-
<StackPanel x:Name="panel" Margin="20" Spacing="8" Width="184" Cursor="Hand">
25+
<StackPanel x:Name="panel" Margin="20" Spacing="8" Width="184" Height="184" Cursor="Hand">
2626
<DockPanel LastChildFill="True">
2727
<Border DockPanel.Dock="Top" Classes="paper">
2828
<Panel x:Name="card" Width="{Binding #panel.Width}">
@@ -62,7 +62,6 @@
6262

6363
<controls:ScrollingTextBlock Width="{Binding #panel.Width}" Text="{Binding SteamNickName}" FontSize="12" FontWeight="Bold" Foreground="{DynamicResource HighlightForegroundBrushKey}" ></controls:ScrollingTextBlock>
6464
<controls:ScrollingTextBlock Width="{Binding #panel.Width}" Text="{Binding LastLoginTime,Converter={StaticResource DateFormatConverter},ConverterParameter='yyyy-MM-dd HH:mm:ss'}" FontSize="10" Foreground="{DynamicResource InactiveForegroundBrushKey}"/>
65-
6665
</StackPanel>
6766
</DataTemplate>
6867
</ItemsRepeater.ItemTemplate>

System.Application.SteamTools.Client.Desktop.Avalonia/Application/UI/Views/Pages/LocalAuthPage.axaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
</ItemsRepeater.Layout>
2828
<ItemsRepeater.ItemTemplate>
2929
<DataTemplate>
30-
<StackPanel Spacing="8">
30+
<Panel>
3131
<Border x:Name="panel" Classes="paper" Width="250" Height="250" Background="{DynamicResource ThemeBrushKey}">
3232
<i:Interaction.Behaviors>
3333
<ia:EventTriggerBehavior EventName="PointerEnter" SourceObject="{Binding #panel}">
@@ -108,7 +108,7 @@
108108
</StackPanel>
109109
</Grid>
110110
</Border>
111-
</StackPanel>
111+
</Panel>
112112
</DataTemplate>
113113
</ItemsRepeater.ItemTemplate>
114114
</ItemsRepeater>

System.Application.SteamTools.Client.Desktop.Avalonia/Application/UI/Views/Pages/SteamAccountPage.axaml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
</ItemsRepeater.Layout>
2828
<ItemsRepeater.ItemTemplate>
2929
<DataTemplate>
30-
<StackPanel x:Name="panel" Margin="20,0" MinWidth="200">
30+
<Panel x:Name="panel" Margin="20,0" MinWidth="200">
3131
<Border x:Name="card" DockPanel.Dock="Top" Classes="paper" CornerRadius="0" Background="{DynamicResource ThemeBrushKey}">
3232
<i:Interaction.Behaviors>
3333
<ia:EventTriggerBehavior EventName="PointerEnter" SourceObject="{Binding #card}">
@@ -84,16 +84,20 @@
8484
</Panel>
8585
<StackPanel Grid.Row="1" Orientation="Horizontal" Margin="0 0 0 0">
8686
<Border BorderBrush="{DynamicResource SemiactiveBackgroundBrushKey}" BorderThickness=".66 .66 .66 0" ToolTip.Tip="{Binding Path=Res.UserChange_OfflineBtn,Mode=OneWay,Source={x:Static resx:R.Current}}">
87-
<Button Classes="flatbutton" Cursor="Hand" Content="{Binding Path=Res.UserChange_OfflineBtn,Mode=OneWay,Source={x:Static resx:R.Current}}" HorizontalAlignment="Stretch" Background="{DynamicResource ThemeBrushKey}" Command="{Binding #u.DataContext.OfflineModeButton_Click}" CommandParameter="{Binding}"></Button>
87+
<Button Classes="flatbutton" Cursor="Hand" HorizontalAlignment="Stretch" MaxWidth="200" Background="{DynamicResource ThemeBrushKey}" Command="{Binding #u.DataContext.OfflineModeButton_Click}" CommandParameter="{Binding}">
88+
<controls:ScrollingTextBlock Text="{Binding Path=Res.UserChange_OfflineBtn,Mode=OneWay,Source={x:Static resx:R.Current}}"></controls:ScrollingTextBlock>
89+
</Button>
8890
</Border>
8991
<Border BorderBrush="{DynamicResource SemiactiveBackgroundBrushKey}" BorderThickness="0 .66 0 0" ToolTip.Tip="{Binding Path=Res.UserChange_BtnTootlip,Mode=OneWay,Source={x:Static resx:R.Current}}">
90-
<Button Classes="flatbutton" Cursor="Hand" Content="{Binding Path=Res.UserChange_BtnText,Mode=OneWay,Source={x:Static resx:R.Current}}" Background="{DynamicResource ThemeBrushKey}" HorizontalAlignment="Stretch" Command="{Binding #u.DataContext.SteamId_Click}" CommandParameter="{Binding}"></Button>
92+
<Button Classes="flatbutton" Cursor="Hand" MaxWidth="250" Background="{DynamicResource ThemeBrushKey}" HorizontalAlignment="Stretch" Command="{Binding #u.DataContext.SteamId_Click}" CommandParameter="{Binding}">
93+
<controls:ScrollingTextBlock Text="{Binding Path=Res.UserChange_BtnText,Mode=OneWay,Source={x:Static resx:R.Current}}"></controls:ScrollingTextBlock>
94+
</Button>
9195
</Border>
9296
</StackPanel>
9397
</Grid>
9498
</Grid>
9599
</Border>
96-
</StackPanel>
100+
</Panel>
97101
</DataTemplate>
98102
</ItemsRepeater.ItemTemplate>
99103
</ItemsRepeater>

System.Application.SteamTools.Client.Desktop.Avalonia/Application/UI/Views/Windows/AddAuthWindow.axaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,11 @@
4040
<Panel>
4141
<Grid IsVisible="{Binding RequiresLogin}" RowDefinitions="Auto,*,Auto" Margin="10">
4242
<StackPanel Grid.Row="1" Spacing="10" VerticalAlignment="Center">
43+
<Image Height="100" Width="100" HorizontalAlignment="Center" Margin="0 0 0 25">
44+
<Image.Source>
45+
<DrawingImage Drawing="{StaticResource SteamDrawing}"></DrawingImage>
46+
</Image.Source>
47+
</Image>
4348
<TextBox Watermark="{Binding Path=Res.Steam_User,Mode=OneWay,Source={x:Static resx:R.Current}}" Text="{Binding UserName}" MaxWidth="300"></TextBox>
4449
<TextBox Watermark="{Binding Path=Res.Steam_Password,Mode=OneWay,Source={x:Static resx:R.Current}}" Text="{Binding Password}" MaxWidth="300" PasswordChar="*"></TextBox>
4550

System.Application.SteamTools.Client.Desktop.Avalonia/Application/UI/Views/Windows/AuthTradeWindow.axaml

Lines changed: 71 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,43 +3,98 @@
33
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
44
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
55
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
6-
Width="600" Height="450"
6+
Width="600" Height="450" x:Name="u"
77
x:Class="System.Application.UI.Views.Windows.AuthTradeWindow"
88
xmlns:resx="clr-namespace:System.Application.UI.Resx;assembly=System.Application.SteamTools.Client.Desktop"
99
xmlns:vm="clr-namespace:System.Application.UI.ViewModels;assembly=System.Application.SteamTools.Client.Desktop"
1010
xmlns:controls="clr-namespace:System.Application.UI.Views.Controls"
11+
xmlns:i="using:Avalonia.Xaml.Interactivity"
12+
xmlns:ia="using:Avalonia.Xaml.Interactions.Core"
1113
Background="Transparent"
1214
ExtendClientAreaToDecorationsHint="True"
1315
ExtendClientAreaChromeHints="NoChrome"
1416
ExtendClientAreaTitleBarHeightHint="30"
1517
Title="{Binding Title}">
1618
<Panel MaxWidth="{Binding $parent.MaxWidth}">
1719
<controls:TitleBar></controls:TitleBar>
18-
<Panel>
20+
<Panel IsVisible="{Binding !IsLoggedIn}">
1921
<StackPanel VerticalAlignment="Center" Spacing="8" Margin="10,0" Width="250">
20-
<Image Source="/Application/UI/Assets/Icon.ico" Height="128" Width="128" HorizontalAlignment="Center" Margin="0 0 0 25">
21-
<!--<Image.Clip>
22-
<EllipseGeometry Rect="0,0,128,128" />
23-
</Image.Clip>-->
22+
<Image Height="100" Width="100" HorizontalAlignment="Center" Margin="0 0 0 25">
23+
<Image.Source>
24+
<DrawingImage Drawing="{StaticResource SteamDrawing}"></DrawingImage>
25+
</Image.Source>
2426
</Image>
25-
<TextBox Watermark="{Binding Path=Res.User_Phone,Mode=OneWay,Source={x:Static resx:R.Current}}"></TextBox>
27+
<TextBox Watermark="{Binding Path=Res.Steam_User,Mode=OneWay,Source={x:Static resx:R.Current}}" Text="{Binding UserName}"></TextBox>
2628

27-
<Panel>
28-
<TextBox Watermark="{Binding Path=Res.User_SMSCode,Mode=OneWay,Source={x:Static resx:R.Current}}"></TextBox>
29-
<Border HorizontalAlignment="Right" Cursor="Hand">
30-
<Button Classes="CodeButton" Content="{Binding Path=Res.User_GetSMSCode,Mode=OneWay,Source={x:Static resx:R.Current}}"></Button>
31-
</Border>
32-
</Panel>
29+
<TextBox Watermark="{Binding Path=Res.Steam_Password,Mode=OneWay,Source={x:Static resx:R.Current}}" PasswordChar="*" Text="{Binding Password}"></TextBox>
3330

3431
<Panel Margin="2 0 6 0">
35-
<CheckBox Content="{Binding Path=Res.User_Rememberme,Mode=OneWay,Source={x:Static resx:R.Current}}"></CheckBox>
36-
<Button Classes="Hyperlink" Content="{Binding Path=Res.User_LoginTroubleshoot,Mode=OneWay,Source={x:Static resx:R.Current}}" HorizontalAlignment="Right"></Button>
32+
<CheckBox Content="{Binding Path=Res.User_Rememberme,Mode=OneWay,Source={x:Static resx:R.Current}}" IsChecked="{Binding RememberMe}"></CheckBox>
3733
</Panel>
3834

35+
<StackPanel IsVisible="{Binding IsRequiresCaptcha}" Orientation="Vertical" HorizontalAlignment="Center" Spacing="10">
36+
<Border Width="206" Height="37">
37+
<Image Width="206" Height="37" Source="{Binding CodeImage,Converter={StaticResource BitmapAssetValueConverter}}">
38+
</Image>
39+
</Border>
40+
<TextBox Watermark="{Binding Path=Res.Steam_ImageCodeTip,Mode=OneWay,Source={x:Static resx:R.Current}}" Text="{Binding CodeImageChar}" MaxWidth="200"></TextBox>
41+
</StackPanel>
42+
3943
<Button Content="{Binding Path=Res.Login,Mode=OneWay,Source={x:Static resx:R.Current}}"
40-
HorizontalAlignment="Stretch" HorizontalContentAlignment="Center">
44+
HorizontalAlignment="Stretch" HorizontalContentAlignment="Center" Command="{Binding LoginButton_Click}">
4145
</Button>
4246
</StackPanel>
47+
<TextBlock VerticalAlignment="Bottom" HorizontalAlignment="Center" Margin="0 5" Text="{Binding Path=Res.LocalAuth_SteamTradeLoginTip,Mode=OneWay,Source={x:Static resx:R.Current}}"></TextBlock>
48+
</Panel>
49+
50+
<Panel HorizontalAlignment="Stretch" IsVisible="{Binding IsLoggedIn}">
51+
<TextBlock IsVisible="{Binding IsConfirmationsEmpty}"
52+
Text="{Binding Path=Res.LocalAuth_AuthTradeListNullTip,Mode=OneWay,Source={x:Static resx:R.Current}}"
53+
TextWrapping="WrapWithOverflow"
54+
VerticalAlignment="Center" HorizontalAlignment="Center"></TextBlock>
55+
<ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto" Margin="0 35 0 0" Padding="0">
56+
<ItemsControl Items="{Binding Confirmations}">
57+
<!--<ItemsRepeater.Layout>
58+
--><!--<UniformGridLayout ItemsJustification="SpaceEvenly" MinRowSpacing="20" Orientation="Horizontal"
59+
MaximumRowsOrColumns="6" />--><!--
60+
<StackLayout Orientation="Vertical" Spacing="20"></StackLayout>
61+
</ItemsRepeater.Layout>-->
62+
<ItemsControl.ItemTemplate>
63+
<DataTemplate>
64+
<Panel x:Name="panel" Margin="10" MinWidth="100">
65+
<Border x:Name="card" DockPanel.Dock="Top" Classes="paper" CornerRadius="0" Background="{DynamicResource ThemeBrushKey}">
66+
<Grid Width="{Binding #panel.Width}"
67+
ColumnDefinitions="Auto,Auto,*,Auto">
68+
<Panel>
69+
<Image Width="36" Margin="10 0" Stretch="Uniform" Source="{Binding Image,Converter={StaticResource BitmapAssetValueConverter}}"/>
70+
</Panel>
71+
<Panel Grid.Column="1" Margin="10,5">
72+
<StackPanel>
73+
<DockPanel LastChildFill="True">
74+
<controls:ScrollingTextBlock Width="{Binding $parent.Width}" Text="{Binding Details}" FontSize="24" Foreground="{DynamicResource HighlightForegroundBrushKey}" Cursor="Hand"></controls:ScrollingTextBlock>
75+
</DockPanel>
76+
77+
<TextBlock Text="{Binding Traded}" FontSize="16" Foreground="{DynamicResource InactiveForegroundBrushKey}"/>
78+
<TextBlock Text="{Binding When}" FontSize="16" Foreground="{DynamicResource InactiveForegroundBrushKey}"/>
79+
</StackPanel>
80+
</Panel>
81+
<Grid Grid.Column="3" RowDefinitions="*,Auto">
82+
<StackPanel Grid.Row="1" Orientation="Horizontal" Margin="0 0 0 0">
83+
<Border BorderBrush="{DynamicResource SemiactiveBackgroundBrushKey}" BorderThickness=".66 .66 .66 0" ToolTip.Tip="{Binding Path=Res.Confirm,Mode=OneWay,Source={x:Static resx:R.Current}}">
84+
<Button Classes="flatbutton" Cursor="Hand" Content="{Binding Path=Res.Confirm,Mode=OneWay,Source={x:Static resx:R.Current}}" HorizontalAlignment="Stretch" Background="{DynamicResource ThemeBrushKey}" Command="{Binding #u.DataContext.ConfirmTrade_Click}" CommandParameter="{Binding}"></Button>
85+
</Border>
86+
<Border BorderBrush="{DynamicResource SemiactiveBackgroundBrushKey}" BorderThickness="0 .66 0 0" ToolTip.Tip="{Binding Path=Res.UserChange_BtnTootlip,Mode=OneWay,Source={x:Static resx:R.Current}}">
87+
<Button Classes="flatbutton" Cursor="Hand" Content="{Binding Path=Res.Cancel,Mode=OneWay,Source={x:Static resx:R.Current}}" Background="{DynamicResource ThemeBrushKey}" HorizontalAlignment="Stretch" Command="{Binding #u.DataContext.CancelTrade_Click}" CommandParameter="{Binding}"></Button>
88+
</Border>
89+
</StackPanel>
90+
</Grid>
91+
</Grid>
92+
</Border>
93+
</Panel>
94+
</DataTemplate>
95+
</ItemsControl.ItemTemplate>
96+
</ItemsControl>
97+
</ScrollViewer>
4398
</Panel>
4499
</Panel>
45100
</Window>

0 commit comments

Comments
 (0)