2using Microsoft.Maui.Controls;
8 public enum SafeAreaMode
24 public static readonly BindableProperty ModeProperty = BindableProperty.CreateAttached(
28 SafeAreaMode.Default);
30 public static readonly BindableProperty CustomPaddingProperty = BindableProperty.CreateAttached(
36 public static SafeAreaMode GetMode(BindableObject view)
38 ArgumentNullException.ThrowIfNull(view);
39 return (SafeAreaMode)view.GetValue(ModeProperty);
42 public static void SetMode(BindableObject view, SafeAreaMode value)
44 ArgumentNullException.ThrowIfNull(view);
45 view.SetValue(ModeProperty, value);
48 public static Thickness GetCustomPadding(BindableObject view)
50 ArgumentNullException.ThrowIfNull(view);
51 return (Thickness)view.GetValue(CustomPaddingProperty);
54 public static void SetCustomPadding(BindableObject view, Thickness value)
56 ArgumentNullException.ThrowIfNull(view);
57 view.SetValue(CustomPaddingProperty, value);
60 public static Thickness ResolveInsetsFor(BindableObject screen)
62 ArgumentNullException.ThrowIfNull(screen);
64 SafeAreaMode Mode = GetMode(screen);
66 if (Mode == SafeAreaMode.Ignore)
67 return new Thickness(0);
69 if (Mode == SafeAreaMode.Custom)
70 return GetCustomPadding(screen);
76 SafeAreaMode.Top =>
new Thickness(0, Insets.Top, 0, 0),
77 SafeAreaMode.Bottom =>
new Thickness(0, 0, 0, Insets.Bottom),
78 SafeAreaMode.TopAndBottom =>
new Thickness(0, Insets.Top, 0, Insets.Bottom),
79 SafeAreaMode.Right =>
new Thickness(0, 0, Insets.Right, 0),
80 SafeAreaMode.Left =>
new Thickness(Insets.Left, 0, 0, 0),
81 SafeAreaMode.RightAndLeft =>
new Thickness(Insets.Left, 0, Insets.Right, 0),
82 SafeAreaMode.All => Insets,
87 public static Thickness ResolveInsetsForMode(SafeAreaMode mode)
90 if (mode == SafeAreaMode.Ignore)
91 return new Thickness(0);
93 if (mode == SafeAreaMode.Custom)
94 return new Thickness(0);
100 SafeAreaMode.Top =>
new Thickness(0, Insets.Top, 0, 0),
101 SafeAreaMode.Bottom =>
new Thickness(0, 0, 0, Insets.Bottom),
102 SafeAreaMode.TopAndBottom =>
new Thickness(0, Insets.Top, 0, Insets.Bottom),
103 SafeAreaMode.Right =>
new Thickness(0, 0, Insets.Right, 0),
104 SafeAreaMode.Left =>
new Thickness(Insets.Left, 0, 0, 0),
105 SafeAreaMode.RightAndLeft =>
new Thickness(Insets.Left, 0, Insets.Right, 0),
106 SafeAreaMode.All => Insets,
Base class that references services in the app.
static IPlatformSpecific PlatformSpecific
Localization service