The Xamarin.Forms Device class allows fine-grained control over functionality and layouts on a per-platform basis - even in common code (either.NET Standard library projects or Shared Projects). The Device.Idiom property can be used to alter layouts or functionality depending on the device the application is running on. The. Liquid error: Can't find the localized string giveDocumentationFeedback for template Conceptual. If the code inside the timer interacts with the user-interface (such as setting the text of a Label or displaying an alert) it should be done inside a BeginInvokeOnMainThread expression (see below). class is a generic class that must be instantiated with an x:TypeArguments attribute that matches the target type. ^ dips is not necessarily the physical pixel count. attribute can accept a single string value, or multiple comma-delimited string values. When you want to render your UI differently on each platform you can use the OnPlatform XAML extension to run code for Android, iOS and UWP. An example is, on iOS, the content shows up right from the top and you might want to push it downloads 20points, but on Android and UWP content is displayed after the status bar or tool. The OpenUri method can be used to trigger operations on the underlying platform, such as open a URL in the native web browser ( Safari on iOS or Internet on Android). class now contains public string constants that identify platforms–. But we ideally want is to only apply the top margin only on iOS. To accomplish that we would use the OnPlatform property as follows: In C#, platform-specific values can be provided by creating a switch statement on the. Prior to Xamarin.Forms 2.3.4, the platform the application was running on could be obtained by examining the. We can also use a shortened syntax to apply the margin, e.g. to apply a margin of 20 on iOS we can do the following: value can be retrieved by using the x:Static markup extension:. return true; // runs again, or false to stop });. We can use the same syntax to apply for Android and iOS both as follows:. overloads could be used to provide platform-specific values to a control. Alternatively, the OnPlatform markup extension can be used in XAML to customize UI appearance on a per-platform basis. For more information, see OnPlatform Markup Extension. BeginInvokeOnMainThread. This is the equivalent of InvokeOnMainThread on iOS, RunOnUiThread on Android, and Dispatcher.RunAsync on the Universal Windows Platform. class contains a number of properties and methods to help developers customize layout and functionality on a per-platform basis.