55#include < common.h>
66#include " CornerRadiusToThicknessConverter.h"
77
8- winrt::Thickness CornerRadiusToThicknessConverter::Convert (winrt::CornerRadius const & radius, winrt::CornerRadiusToThicknessConverterKind const & filterKind)
8+ winrt::Thickness CornerRadiusToThicknessConverter::Convert (winrt::CornerRadius const & radius,
9+ winrt::CornerRadiusToThicknessConverterKind const & filterKind,
10+ double multiplier)
911{
1012 auto result = winrt::Thickness{};
1113
1214 switch (filterKind)
1315 {
1416 case winrt::CornerRadiusToThicknessConverterKind::FilterLeftAndRightFromTop:
15- result.Left = radius.TopLeft ;
16- result.Right = radius.TopRight ;
17+ result.Left = radius.TopLeft * multiplier ;
18+ result.Right = radius.TopRight * multiplier ;
1719 result.Top = 0 ;
1820 result.Bottom = 0 ;
1921 break ;
2022 case winrt::CornerRadiusToThicknessConverterKind::FilterLeftAndRightFromBottom:
21- result.Left = radius.BottomLeft ;
22- result.Right = radius.BottomRight ;
23+ result.Left = radius.BottomLeft * multiplier ;
24+ result.Right = radius.BottomRight * multiplier ;
2325 result.Top = 0 ;
2426 result.Bottom = 0 ;
2527 break ;
2628 case winrt::CornerRadiusToThicknessConverterKind::FilterTopAndBottomFromLeft:
2729 result.Left = 0 ;
2830 result.Right = 0 ;
29- result.Top = radius.TopLeft ;
30- result.Bottom = radius.BottomLeft ;
31+ result.Top = radius.TopLeft * multiplier ;
32+ result.Bottom = radius.BottomLeft * multiplier ;
3133 break ;
3234 case winrt::CornerRadiusToThicknessConverterKind::FilterTopAndBottomFromRight:
3335 result.Left = 0 ;
3436 result.Right = 0 ;
35- result.Top = radius.TopRight ;
36- result.Bottom = radius.BottomRight ;
37+ result.Top = radius.TopRight * multiplier;
38+ result.Bottom = radius.BottomRight * multiplier;
39+ break ;
40+ case winrt::CornerRadiusToThicknessConverterKind::FilterTopFromTopLeft:
41+ result.Left = 0 ;
42+ result.Right = 0 ;
43+ result.Top = radius.TopLeft * multiplier;
44+ result.Bottom = 0 ;
45+ break ;
46+ case winrt::CornerRadiusToThicknessConverterKind::FilterTopFromTopRight:
47+ result.Left = 0 ;
48+ result.Right = 0 ;
49+ result.Top = radius.TopRight * multiplier;
50+ result.Bottom = 0 ;
51+ break ;
52+ case winrt::CornerRadiusToThicknessConverterKind::FilterRightFromTopRight:
53+ result.Left = 0 ;
54+ result.Right = radius.TopRight * multiplier;
55+ result.Top = 0 ;
56+ result.Bottom = 0 ;
57+ break ;
58+ case winrt::CornerRadiusToThicknessConverterKind::FilterRightFromBottomRight:
59+ result.Left = 0 ;
60+ result.Right = radius.BottomRight * multiplier;
61+ result.Top = 0 ;
62+ result.Bottom = 0 ;
63+ break ;
64+ case winrt::CornerRadiusToThicknessConverterKind::FilterBottomFromBottomRight:
65+ result.Left = 0 ;
66+ result.Right = 0 ;
67+ result.Top = 0 ;
68+ result.Bottom = radius.BottomRight * multiplier;
69+ break ;
70+ case winrt::CornerRadiusToThicknessConverterKind::FilterBottomFromBottomLeft:
71+ result.Left = 0 ;
72+ result.Right = 0 ;
73+ result.Top = 0 ;
74+ result.Bottom = radius.BottomLeft * multiplier;
75+ break ;
76+ case winrt::CornerRadiusToThicknessConverterKind::FilterLeftFromBottomLeft:
77+ result.Left = radius.BottomLeft * multiplier;
78+ result.Right = 0 ;
79+ result.Top = 0 ;
80+ result.Bottom = 0 ;
81+ break ;
82+ case winrt::CornerRadiusToThicknessConverterKind::FilterLeftFromTopLeft:
83+ result.Left = radius.TopLeft * multiplier;
84+ result.Right = 0 ;
85+ result.Top = 0 ;
86+ result.Bottom = 0 ;
3787 break ;
3888 }
3989
@@ -47,8 +97,8 @@ winrt::IInspectable CornerRadiusToThicknessConverter::Convert(
4797 winrt::hstring const & language)
4898{
4999 auto radius = unbox_value<winrt::CornerRadius>(value);
50-
51- return box_value (Convert (radius, ConversionKind ()));
100+ const auto multiplier = Multiplier ();
101+ return box_value (Convert (radius, ConversionKind (),multiplier ));
52102}
53103
54104winrt::IInspectable CornerRadiusToThicknessConverter::ConvertBack (
@@ -58,4 +108,5 @@ winrt::IInspectable CornerRadiusToThicknessConverter::ConvertBack(
58108 winrt::hstring const & language)
59109{
60110 winrt::throw_hresult (E_NOTIMPL);
111+
61112}
0 commit comments