1- using System . Globalization ;
1+ using System . Globalization ;
22using System . Windows . Data ;
33using System . Windows . Media ;
44
@@ -25,89 +25,77 @@ internal class FloatingHintTextBlockMarginConverter : IMultiValueConverter
2525 HorizontalAlignment alignment = restingAlignment ;
2626 if ( scale != 0 )
2727 {
28- switch ( floatingAlignment )
28+ alignment = floatingAlignment switch
2929 {
30- case FloatingHintHorizontalAlignment . Inherit :
31- alignment = restingAlignment ;
32- break ;
33- case FloatingHintHorizontalAlignment . Left :
34- alignment = HorizontalAlignment . Left ;
35- break ;
36- case FloatingHintHorizontalAlignment . Center :
37- alignment = HorizontalAlignment . Center ;
38- break ;
39- case FloatingHintHorizontalAlignment . Right :
40- alignment = HorizontalAlignment . Right ;
41- break ;
42- case FloatingHintHorizontalAlignment . Stretch :
43- alignment = HorizontalAlignment . Stretch ;
44- break ;
45- default :
46- throw new ArgumentOutOfRangeException ( ) ;
47- }
30+ FloatingHintHorizontalAlignment . Inherit => restingAlignment ,
31+ FloatingHintHorizontalAlignment . Left => HorizontalAlignment . Left ,
32+ FloatingHintHorizontalAlignment . Center => HorizontalAlignment . Center ,
33+ FloatingHintHorizontalAlignment . Right => HorizontalAlignment . Right ,
34+ FloatingHintHorizontalAlignment . Stretch => HorizontalAlignment . Stretch ,
35+ _ => throw new ArgumentOutOfRangeException ( ) ,
36+ } ;
4837 }
49- switch ( alignment )
38+ double leftThickness = alignment switch
5039 {
51- case HorizontalAlignment . Right :
52- return FloatRight ( ) ;
53- case HorizontalAlignment . Center :
54- return FloatCenter ( ) ;
55- default :
56- return FloatLeft ( ) ;
57- }
40+ HorizontalAlignment . Right => FloatRight ( ) ,
41+ HorizontalAlignment . Center => FloatCenter ( ) ,
42+ _ => FloatLeft ( ) ,
43+ } ;
44+
45+ return new Thickness ( Math . Round ( leftThickness ) , 0 , 0 , 0 ) ;
5846
59- Thickness FloatLeft ( )
47+ double FloatLeft ( )
6048 {
6149 if ( restingAlignment == HorizontalAlignment . Center )
6250 {
6351 // Animate from center to left
6452 double offset = Math . Max ( 0 , ( availableWidth - desiredWidth ) / 2 ) ;
65- return new Thickness ( offset - offset * scale , 0 , 0 , 0 ) ;
53+ return offset - offset * scale ;
6654 }
6755 if ( restingAlignment == HorizontalAlignment . Right )
6856 {
6957 // Animate from right to left
7058 double offset = Math . Max ( 0 , availableWidth - desiredWidth ) ;
71- return new Thickness ( offset - offset * scale , 0 , 0 , 0 ) ;
59+ return offset - offset * scale ;
7260 }
73- return new Thickness ( 0 ) ;
61+ return 0 ;
7462 }
7563
76- Thickness FloatCenter ( )
64+ double FloatCenter ( )
7765 {
7866 if ( restingAlignment == HorizontalAlignment . Left || restingAlignment == HorizontalAlignment . Stretch )
7967 {
8068 // Animate from left to center
8169 double offset = Math . Max ( 0 , ( availableWidth - desiredWidth * scaleMultiplier ) / 2 ) ;
82- return new Thickness ( offset * scale , 0 , 0 , 0 ) ;
70+ return offset * scale ;
8371 }
8472 if ( restingAlignment == HorizontalAlignment . Right )
8573 {
8674 // Animate from right to center
8775 double startOffset = Math . Max ( 0 , availableWidth - desiredWidth ) ;
8876 double endOffset = Math . Max ( 0 , ( availableWidth - desiredWidth ) / 2 ) ;
8977 double endOffsetDelta = startOffset - endOffset ;
90- return new Thickness ( endOffset + endOffsetDelta * ( 1 - scale ) , 0 , 0 , 0 ) ;
78+ return endOffset + endOffsetDelta * ( 1 - scale ) ;
9179 }
92- return new Thickness ( Math . Max ( 0 , availableWidth - desiredWidth * scaleMultiplier ) / 2 , 0 , 0 , 0 ) ;
80+ return Math . Max ( 0 , availableWidth - desiredWidth * scaleMultiplier ) / 2 ;
9381 }
9482
95- Thickness FloatRight ( )
83+ double FloatRight ( )
9684 {
9785 if ( restingAlignment == HorizontalAlignment . Left || restingAlignment == HorizontalAlignment . Stretch )
9886 {
9987 // Animate from left to right
10088 double offset = Math . Max ( 0 , availableWidth - desiredWidth * scaleMultiplier ) ;
101- return new Thickness ( offset * scale , 0 , 0 , 0 ) ;
89+ return offset * scale ;
10290 }
10391 if ( restingAlignment == HorizontalAlignment . Center )
10492 {
10593 // Animate from center to right
10694 double startOffset = Math . Max ( 0 , ( availableWidth - desiredWidth ) / 2 ) ;
10795 double endOffsetDelta = Math . Max ( 0 , availableWidth - desiredWidth * scaleMultiplier ) - startOffset ;
108- return new Thickness ( startOffset + endOffsetDelta * scale , 0 , 0 , 0 ) ;
96+ return startOffset + endOffsetDelta * scale ;
10997 }
110- return new Thickness ( Math . Max ( 0 , availableWidth - desiredWidth * scaleMultiplier ) , 0 , 0 , 0 ) ;
98+ return Math . Max ( 0 , availableWidth - desiredWidth * scaleMultiplier ) ;
11199 }
112100 }
113101
0 commit comments