11using System ;
2+ using System . Collections . Generic ;
23using System . Globalization ;
34
45using Avalonia ;
@@ -92,8 +93,8 @@ private static void OnUserPropertyChanged(Avatar avatar, AvaloniaPropertyChanged
9293 if ( avatar . User == null )
9394 return ;
9495
95- var placeholder = string . IsNullOrWhiteSpace ( avatar . User . Name ) ? "?" : avatar . User . Name . Substring ( 0 , 1 ) ;
96- var chars = placeholder . ToCharArray ( ) ;
96+ var fallback = GetFallbackString ( avatar . User . Name ) ;
97+ var chars = fallback . ToCharArray ( ) ;
9798 var sum = 0 ;
9899 foreach ( var c in chars )
99100 sum += Math . Abs ( c ) ;
@@ -105,11 +106,9 @@ private static void OnUserPropertyChanged(Avatar avatar, AvaloniaPropertyChanged
105106 EndPoint = new RelativePoint ( 0 , 1 , RelativeUnit . Relative ) ,
106107 } ;
107108
108- var fontFamily = avatar . FindResource ( "Fonts.Monospace" ) as FontFamily ;
109- var typeface = new Typeface ( fontFamily ) ;
110-
109+ var typeface = new Typeface ( "fonts:SourceGit#JetBrains Mono" ) ;
111110 avatar . _fallbackLabel = new FormattedText (
112- placeholder ,
111+ fallback ,
113112 CultureInfo . CurrentCulture ,
114113 FlowDirection . LeftToRight ,
115114 typeface ,
@@ -119,6 +118,23 @@ private static void OnUserPropertyChanged(Avatar avatar, AvaloniaPropertyChanged
119118 avatar . InvalidateVisual ( ) ;
120119 }
121120
121+ private static string GetFallbackString ( string name )
122+ {
123+ if ( string . IsNullOrWhiteSpace ( name ) )
124+ return "?" ;
125+
126+ var parts = name . Split ( ' ' , StringSplitOptions . RemoveEmptyEntries ) ;
127+ var chars = new List < char > ( ) ;
128+ foreach ( var part in parts )
129+ chars . Add ( part [ 0 ] ) ;
130+
131+ if ( chars . Count >= 2 )
132+ return string . Format ( "{0}{1}" , chars [ 0 ] , chars [ ^ 1 ] ) ;
133+ if ( chars . Count == 1 )
134+ return string . Format ( "{0}" , chars [ 0 ] ) ;
135+ return name . Substring ( 0 , 1 ) ;
136+ }
137+
122138 private FormattedText _fallbackLabel = null ;
123139 private LinearGradientBrush _fallbackBrush = null ;
124140 }
0 commit comments