diff --git a/src/Controls/src/Core/Device.cs b/src/Controls/src/Core/Device.cs
index 2bea4df3c3a4..2e5783525627 100644
--- a/src/Controls/src/Core/Device.cs
+++ b/src/Controls/src/Core/Device.cs
@@ -48,6 +48,27 @@ public static class Device
[Obsolete("Use Microsoft.Maui.Devices.DevicePlatform.tvOS instead.")]
public const string tvOS = "tvOS";
+ ///
+ [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;
+ }
+ }
+
///
[Obsolete("Use Microsoft.Maui.Devices.DeviceInfo.Platform instead.")]
public static string RuntimePlatform => DeviceInfo.Platform.ToString();
diff --git a/src/Controls/src/Core/PublicAPI/net-android/PublicAPI.Unshipped.txt b/src/Controls/src/Core/PublicAPI/net-android/PublicAPI.Unshipped.txt
index 9f3d9f0df743..5a87af4d4209 100644
--- a/src/Controls/src/Core/PublicAPI/net-android/PublicAPI.Unshipped.txt
+++ b/src/Controls/src/Core/PublicAPI/net-android/PublicAPI.Unshipped.txt
@@ -86,14 +86,6 @@ override Microsoft.Maui.Controls.SearchBar.IsEnabledCore.get -> bool
*REMOVED*Microsoft.Maui.Controls.OpenGLView.HasRenderLoop.get -> bool
*REMOVED*Microsoft.Maui.Controls.OpenGLView.HasRenderLoop.set -> void
*REMOVED*Microsoft.Maui.Controls.OpenGLView.OpenGLView() -> void
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.Desktop = 3 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.Phone = 1 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.Tablet = 2 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.TV = 4 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.Unsupported = 0 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.Watch = 5 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*static Microsoft.Maui.Controls.Device.Idiom.get -> Microsoft.Maui.Controls.TargetIdiom
*REMOVED*Microsoft.Maui.Controls.Application.SavePropertiesAsync() -> System.Threading.Tasks.Task!
*REMOVED*Microsoft.Maui.Controls.Application.Properties.get -> System.Collections.Generic.IDictionary!
Microsoft.Maui.Controls.IValueConverter.Convert(object? value, System.Type! targetType, object? parameter, System.Globalization.CultureInfo! culture) -> object?
diff --git a/src/Controls/src/Core/PublicAPI/net-ios/PublicAPI.Unshipped.txt b/src/Controls/src/Core/PublicAPI/net-ios/PublicAPI.Unshipped.txt
index c10bbe8779f3..30c534e15449 100644
--- a/src/Controls/src/Core/PublicAPI/net-ios/PublicAPI.Unshipped.txt
+++ b/src/Controls/src/Core/PublicAPI/net-ios/PublicAPI.Unshipped.txt
@@ -95,14 +95,6 @@ override Microsoft.Maui.Controls.SearchBar.IsEnabledCore.get -> bool
*REMOVED*Microsoft.Maui.Controls.OpenGLView.HasRenderLoop.get -> bool
*REMOVED*Microsoft.Maui.Controls.OpenGLView.HasRenderLoop.set -> void
*REMOVED*Microsoft.Maui.Controls.OpenGLView.OpenGLView() -> void
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.Desktop = 3 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.Phone = 1 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.Tablet = 2 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.TV = 4 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.Unsupported = 0 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.Watch = 5 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*static Microsoft.Maui.Controls.Device.Idiom.get -> Microsoft.Maui.Controls.TargetIdiom
*REMOVED*Microsoft.Maui.Controls.Application.SavePropertiesAsync() -> System.Threading.Tasks.Task!
*REMOVED*Microsoft.Maui.Controls.Application.Properties.get -> System.Collections.Generic.IDictionary!
Microsoft.Maui.Controls.IValueConverter.Convert(object? value, System.Type! targetType, object? parameter, System.Globalization.CultureInfo! culture) -> object?
diff --git a/src/Controls/src/Core/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt b/src/Controls/src/Core/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt
index 6bd526baa8e8..630114f1260e 100644
--- a/src/Controls/src/Core/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt
+++ b/src/Controls/src/Core/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt
@@ -91,14 +91,6 @@ override Microsoft.Maui.Controls.SearchBar.IsEnabledCore.get -> bool
*REMOVED*Microsoft.Maui.Controls.OpenGLView.HasRenderLoop.get -> bool
*REMOVED*Microsoft.Maui.Controls.OpenGLView.HasRenderLoop.set -> void
*REMOVED*Microsoft.Maui.Controls.OpenGLView.OpenGLView() -> void
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.Desktop = 3 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.Phone = 1 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.Tablet = 2 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.TV = 4 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.Unsupported = 0 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.Watch = 5 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*static Microsoft.Maui.Controls.Device.Idiom.get -> Microsoft.Maui.Controls.TargetIdiom
*REMOVED*Microsoft.Maui.Controls.Application.SavePropertiesAsync() -> System.Threading.Tasks.Task!
*REMOVED*Microsoft.Maui.Controls.Application.Properties.get -> System.Collections.Generic.IDictionary!
Microsoft.Maui.Controls.IValueConverter.Convert(object? value, System.Type! targetType, object? parameter, System.Globalization.CultureInfo! culture) -> object?
diff --git a/src/Controls/src/Core/PublicAPI/net-tizen/PublicAPI.Unshipped.txt b/src/Controls/src/Core/PublicAPI/net-tizen/PublicAPI.Unshipped.txt
index 0540ba269a4e..60f1cb942963 100644
--- a/src/Controls/src/Core/PublicAPI/net-tizen/PublicAPI.Unshipped.txt
+++ b/src/Controls/src/Core/PublicAPI/net-tizen/PublicAPI.Unshipped.txt
@@ -70,14 +70,6 @@ override Microsoft.Maui.Controls.SearchBar.IsEnabledCore.get -> bool
*REMOVED*Microsoft.Maui.Controls.OpenGLView.HasRenderLoop.get -> bool
*REMOVED*Microsoft.Maui.Controls.OpenGLView.HasRenderLoop.set -> void
*REMOVED*Microsoft.Maui.Controls.OpenGLView.OpenGLView() -> void
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.Desktop = 3 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.Phone = 1 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.Tablet = 2 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.TV = 4 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.Unsupported = 0 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.Watch = 5 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*static Microsoft.Maui.Controls.Device.Idiom.get -> Microsoft.Maui.Controls.TargetIdiom
*REMOVED*Microsoft.Maui.Controls.Application.SavePropertiesAsync() -> System.Threading.Tasks.Task!
*REMOVED*Microsoft.Maui.Controls.Application.Properties.get -> System.Collections.Generic.IDictionary!
Microsoft.Maui.Controls.IValueConverter.Convert(object? value, System.Type! targetType, object? parameter, System.Globalization.CultureInfo! culture) -> object?
diff --git a/src/Controls/src/Core/PublicAPI/net-windows/PublicAPI.Unshipped.txt b/src/Controls/src/Core/PublicAPI/net-windows/PublicAPI.Unshipped.txt
index 33530dd0cf59..0eede34ba74b 100644
--- a/src/Controls/src/Core/PublicAPI/net-windows/PublicAPI.Unshipped.txt
+++ b/src/Controls/src/Core/PublicAPI/net-windows/PublicAPI.Unshipped.txt
@@ -95,14 +95,6 @@ override Microsoft.Maui.Controls.SearchBar.IsEnabledCore.get -> bool
*REMOVED*Microsoft.Maui.Controls.OpenGLView.HasRenderLoop.get -> bool
*REMOVED*Microsoft.Maui.Controls.OpenGLView.HasRenderLoop.set -> void
*REMOVED*Microsoft.Maui.Controls.OpenGLView.OpenGLView() -> void
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.Desktop = 3 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.Phone = 1 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.Tablet = 2 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.TV = 4 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.Unsupported = 0 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.Watch = 5 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*static Microsoft.Maui.Controls.Device.Idiom.get -> Microsoft.Maui.Controls.TargetIdiom
*REMOVED*Microsoft.Maui.Controls.Application.SavePropertiesAsync() -> System.Threading.Tasks.Task!
*REMOVED*Microsoft.Maui.Controls.Application.Properties.get -> System.Collections.Generic.IDictionary!
Microsoft.Maui.Controls.IValueConverter.Convert(object? value, System.Type! targetType, object? parameter, System.Globalization.CultureInfo! culture) -> object?
diff --git a/src/Controls/src/Core/PublicAPI/net/PublicAPI.Unshipped.txt b/src/Controls/src/Core/PublicAPI/net/PublicAPI.Unshipped.txt
index 035034a777dc..e8cdbef822d1 100644
--- a/src/Controls/src/Core/PublicAPI/net/PublicAPI.Unshipped.txt
+++ b/src/Controls/src/Core/PublicAPI/net/PublicAPI.Unshipped.txt
@@ -77,14 +77,6 @@ override Microsoft.Maui.Controls.SearchBar.IsEnabledCore.get -> bool
*REMOVED*Microsoft.Maui.Controls.OpenGLView.HasRenderLoop.get -> bool
*REMOVED*Microsoft.Maui.Controls.OpenGLView.HasRenderLoop.set -> void
*REMOVED*Microsoft.Maui.Controls.OpenGLView.OpenGLView() -> void
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.Desktop = 3 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.Phone = 1 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.Tablet = 2 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.TV = 4 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.Unsupported = 0 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.Watch = 5 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*static Microsoft.Maui.Controls.Device.Idiom.get -> Microsoft.Maui.Controls.TargetIdiom
*REMOVED*Microsoft.Maui.Controls.Application.SavePropertiesAsync() -> System.Threading.Tasks.Task!
*REMOVED*Microsoft.Maui.Controls.Application.Properties.get -> System.Collections.Generic.IDictionary!
Microsoft.Maui.Controls.IValueConverter.Convert(object? value, System.Type! targetType, object? parameter, System.Globalization.CultureInfo! culture) -> object?
diff --git a/src/Controls/src/Core/PublicAPI/netstandard/PublicAPI.Unshipped.txt b/src/Controls/src/Core/PublicAPI/netstandard/PublicAPI.Unshipped.txt
index deb9e75a4ce2..9b068ca684b0 100644
--- a/src/Controls/src/Core/PublicAPI/netstandard/PublicAPI.Unshipped.txt
+++ b/src/Controls/src/Core/PublicAPI/netstandard/PublicAPI.Unshipped.txt
@@ -100,14 +100,6 @@ override Microsoft.Maui.Controls.SearchBar.IsEnabledCore.get -> bool
*REMOVED*Microsoft.Maui.Controls.OpenGLView.HasRenderLoop.get -> bool
*REMOVED*Microsoft.Maui.Controls.OpenGLView.HasRenderLoop.set -> void
*REMOVED*Microsoft.Maui.Controls.OpenGLView.OpenGLView() -> void
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.Desktop = 3 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.Phone = 1 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.Tablet = 2 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.TV = 4 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.Unsupported = 0 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*Microsoft.Maui.Controls.TargetIdiom.Watch = 5 -> Microsoft.Maui.Controls.TargetIdiom
-*REMOVED*static Microsoft.Maui.Controls.Device.Idiom.get -> Microsoft.Maui.Controls.TargetIdiom
*REMOVED*Microsoft.Maui.Controls.Application.SavePropertiesAsync() -> System.Threading.Tasks.Task!
*REMOVED*Microsoft.Maui.Controls.Application.Properties.get -> System.Collections.Generic.IDictionary!
Microsoft.Maui.Controls.IValueConverter.Convert(object? value, System.Type! targetType, object? parameter, System.Globalization.CultureInfo! culture) -> object?
diff --git a/src/Controls/src/Core/TargetIdiom.cs b/src/Controls/src/Core/TargetIdiom.cs
new file mode 100644
index 000000000000..9e8e2e581d84
--- /dev/null
+++ b/src/Controls/src/Core/TargetIdiom.cs
@@ -0,0 +1,22 @@
+using System;
+
+namespace Microsoft.Maui.Controls
+{
+ ///
+ [Obsolete("Use Microsoft.Maui.Devices.DeviceIdiom instead.")]
+ public enum TargetIdiom
+ {
+ ///
+ Unsupported,
+ ///
+ Phone,
+ ///
+ Tablet,
+ ///
+ Desktop,
+ ///
+ TV,
+ ///
+ Watch
+ }
+}