| File: Device.cs | Web Access |
| Project: src\src\Controls\src\Core\Controls.Core.csproj (Microsoft.Maui.Controls) |
#nullable disable using System; using System.ComponentModel; using System.Reflection; using System.Threading; using System.Threading.Tasks; using Microsoft.Maui.ApplicationModel; using Microsoft.Maui.Controls.Internals; using Microsoft.Maui.Devices; using Microsoft.Maui.Dispatching; namespace Microsoft.Maui.Controls { /// <include file="../../docs/Microsoft.Maui.Controls/Device.xml" path="Type[@FullName='Microsoft.Maui.Controls.Device']/Docs/*" /> [Obsolete] public static class Device { // this is just for those cases where the runtime needs to pre-load renderers [Obsolete] [EditorBrowsable(EditorBrowsableState.Never)] public static Assembly DefaultRendererAssembly { get; set; } /// <include file="../../docs/Microsoft.Maui.Controls/Device.xml" path="//Member[@MemberName='iOS']/Docs/*" /> [Obsolete("Use Microsoft.Maui.Devices.DevicePlatform.iOS instead.")] public const string iOS = "iOS"; /// <include file="../../docs/Microsoft.Maui.Controls/Device.xml" path="//Member[@MemberName='Android']/Docs/*" /> [Obsolete("Use Microsoft.Maui.Devices.DevicePlatform.Android instead.")] public const string Android = "Android"; /// <include file="../../docs/Microsoft.Maui.Controls/Device.xml" path="//Member[@MemberName='UWP']/Docs/*" /> [Obsolete("Use Microsoft.Maui.Devices.DevicePlatform.WinUI instead.")] public const string UWP = "WinUI"; /// <include file="../../docs/Microsoft.Maui.Controls/Device.xml" path="//Member[@MemberName='macOS']/Docs/*" /> [Obsolete("Use Microsoft.Maui.Devices.DevicePlatform.macOS instead.")] internal const string macOS = "macOS"; /// <include file="../../docs/Microsoft.Maui.Controls/Device.xml" path="//Member[@MemberName='GTK']/Docs/*" /> [Obsolete("Use Microsoft.Maui.Devices.DevicePlatform.GTK instead.")] internal const string GTK = "GTK"; /// <include file="../../docs/Microsoft.Maui.Controls/Device.xml" path="//Member[@MemberName='Tizen']/Docs/*" /> [Obsolete("Use Microsoft.Maui.Devices.DevicePlatform.Tizen instead.")] public const string Tizen = "Tizen"; [Obsolete("Use Microsoft.Maui.Devices.DevicePlatform.WinUI instead.")] public const string WinUI = "WinUI"; /// <include file="../../docs/Microsoft.Maui.Controls/Device.xml" path="//Member[@MemberName='WPF']/Docs/*" /> [Obsolete("Use Microsoft.Maui.Devices.DevicePlatform.WPF instead.")] internal const string WPF = "WPF"; [Obsolete("Use Microsoft.Maui.Devices.DevicePlatform.MacCatalyst instead.")] public const string MacCatalyst = "MacCatalyst"; [Obsolete("Use Microsoft.Maui.Devices.DevicePlatform.tvOS instead.")] public const string tvOS = "tvOS"; /// <include file="../../docs/Microsoft.Maui.Controls/Device.xml" path="//Member[@MemberName='Idiom']/Docs/*" /> [Obsolete("Use Microsoft.Maui.Devices.DeviceInfo.Idiom instead.")] public static TargetIdiom Idiom { get { var idiom = DeviceInfo.Idiom; if (idiom == DeviceIdiom.Tablet) return TargetIdiom.Tablet; if (idiom == DeviceIdiom.Phone) return TargetIdiom.Phone; if (idiom == DeviceIdiom.Desktop) return TargetIdiom.Desktop; if (idiom == DeviceIdiom.TV) return TargetIdiom.TV; if (idiom == DeviceIdiom.Watch) return TargetIdiom.Watch; return TargetIdiom.Unsupported; } } /// <include file="../../docs/Microsoft.Maui.Controls/Device.xml" path="//Member[@MemberName='RuntimePlatform']/Docs/*" /> [Obsolete("Use Microsoft.Maui.Devices.DeviceInfo.Platform instead.")] public static string RuntimePlatform => DeviceInfo.Platform.ToString(); /// <include file="../../docs/Microsoft.Maui.Controls/Device.xml" path="//Member[@MemberName='FlowDirection']/Docs/*" /> [Obsolete("Use Microsoft.Maui.ApplicationModel.AppInfo.RequestedLayoutDirection instead.")] public static FlowDirection FlowDirection => AppInfo.RequestedLayoutDirection == LayoutDirection.RightToLeft ? FlowDirection.RightToLeft : FlowDirection.LeftToRight; /// <include file="../../docs/Microsoft.Maui.Controls/Device.xml" path="//Member[@MemberName='IsInvokeRequired']/Docs/*" /> [Obsolete("Use BindableObject.Dispatcher.IsDispatchRequired instead.")] public static bool IsInvokeRequired => Application.Current.FindDispatcher().IsDispatchRequired; /// <include file="../../docs/Microsoft.Maui.Controls/Device.xml" path="//Member[@MemberName='BeginInvokeOnMainThread']/Docs/*" /> [Obsolete("Use BindableObject.Dispatcher.Dispatch() instead.")] public static void BeginInvokeOnMainThread(Action action) => Application.Current.FindDispatcher().Dispatch(action); /// <include file="../../docs/Microsoft.Maui.Controls/Device.xml" path="//Member[@MemberName='InvokeOnMainThreadAsync<T>'][2]/Docs/*" /> [Obsolete("Use BindableObject.Dispatcher.DispatchAsync() instead.")] public static Task<T> InvokeOnMainThreadAsync<T>(Func<T> func) => Application.Current.FindDispatcher().DispatchAsync(func); /// <include file="../../docs/Microsoft.Maui.Controls/Device.xml" path="//Member[@MemberName='InvokeOnMainThreadAsync'][1]/Docs/*" /> [Obsolete("Use BindableObject.Dispatcher.DispatchAsync() instead.")] public static Task InvokeOnMainThreadAsync(Action action) => Application.Current.FindDispatcher().DispatchAsync(action); /// <include file="../../docs/Microsoft.Maui.Controls/Device.xml" path="//Member[@MemberName='InvokeOnMainThreadAsync<T>'][1]/Docs/*" /> [Obsolete("Use BindableObject.Dispatcher.DispatchAsync() instead.")] public static Task<T> InvokeOnMainThreadAsync<T>(Func<Task<T>> funcTask) => Application.Current.FindDispatcher().DispatchAsync(funcTask); /// <include file="../../docs/Microsoft.Maui.Controls/Device.xml" path="//Member[@MemberName='InvokeOnMainThreadAsync'][2]/Docs/*" /> [Obsolete("Use BindableObject.Dispatcher.DispatchAsync() instead.")] public static Task InvokeOnMainThreadAsync(Func<Task> funcTask) => Application.Current.FindDispatcher().DispatchAsync(funcTask); /// <include file="../../docs/Microsoft.Maui.Controls/Device.xml" path="//Member[@MemberName='GetMainThreadSynchronizationContextAsync']/Docs/*" /> [Obsolete("Use BindableObject.Dispatcher.GetSynchronizationContextAsync() instead.")] public static Task<SynchronizationContext> GetMainThreadSynchronizationContextAsync() => Application.Current.FindDispatcher().GetSynchronizationContextAsync(); /// <include file="../../docs/Microsoft.Maui.Controls/Device.xml" path="//Member[@MemberName='GetNamedSize'][2]/Docs/*" /> [Obsolete] public static double GetNamedSize(NamedSize size, Element targetElement) { return GetNamedSize(size, targetElement.GetType()); } /// <include file="../../docs/Microsoft.Maui.Controls/Device.xml" path="//Member[@MemberName='GetNamedSize'][1]/Docs/*" /> [Obsolete] public static double GetNamedSize(NamedSize size, Type targetElementType) { return GetNamedSize(size, targetElementType, false); } /// <include file="../../docs/Microsoft.Maui.Controls/Device.xml" path="//Member[@MemberName='StartTimer']/Docs/*" /> [Obsolete("Use BindableObject.Dispatcher.StartTimer() or BindableObject.Dispatcher.DispatchDelayed() instead.")] public static void StartTimer(TimeSpan interval, Func<bool> callback) { _ = callback ?? throw new ArgumentNullException(nameof(callback)); var dispatcher = Application.Current.FindDispatcher(); dispatcher.StartTimer(interval, callback); } /// <include file="../../docs/Microsoft.Maui.Controls/Device.xml" path="//Member[@MemberName='GetNamedSize'][3]/Docs/*" /> [Obsolete] [EditorBrowsable(EditorBrowsableState.Never)] public static double GetNamedSize(NamedSize size, Type targetElementType, bool useOldSizes) => DependencyService.Get<IFontNamedSizeService>()?.GetNamedSize(size, targetElementType, useOldSizes) ?? throw new NotImplementedException("The current platform does not implement the IFontNamedSizeService dependency service."); [Obsolete] public static class Styles { public static readonly string TitleStyleKey = "TitleStyle"; public static readonly string SubtitleStyleKey = "SubtitleStyle"; public static readonly string BodyStyleKey = "BodyStyle"; public static readonly string ListItemTextStyleKey = "ListItemTextStyle"; public static readonly string ListItemDetailTextStyleKey = "ListItemDetailTextStyle"; public static readonly string CaptionStyleKey = "CaptionStyle"; public static readonly Style TitleStyle = new Style(typeof(Label)) { BaseResourceKey = TitleStyleKey }; public static readonly Style SubtitleStyle = new Style(typeof(Label)) { BaseResourceKey = SubtitleStyleKey }; public static readonly Style BodyStyle = new Style(typeof(Label)) { BaseResourceKey = BodyStyleKey }; public static readonly Style ListItemTextStyle = new Style(typeof(Label)) { BaseResourceKey = ListItemTextStyleKey }; public static readonly Style ListItemDetailTextStyle = new Style(typeof(Label)) { BaseResourceKey = ListItemDetailTextStyleKey }; public static readonly Style CaptionStyle = new Style(typeof(Label)) { BaseResourceKey = CaptionStyleKey }; } } }