Xamarin.Forms
Специальные визуальные корректировки для платформы
Поиск…
Коррекция идиомы
Индивидуальные корректировки с помощью идиомы можно выполнять с помощью кода C #, например, для изменения ориентации макета, отображается ли представление или телефон или планшет.
if (Device.Idiom == TargetIdiom.Phone)
{
this.panel.Orientation = StackOrientation.Vertical;
}
else
{
this.panel.Orientation = StackOrientation.Horizontal;
}
Эти функции также доступны непосредственно из кода XAML:
<StackLayout x:Name="panel">
<StackLayout.Orientation>
<OnIdiom x:TypeArguments="StackOrientation">
<OnIdiom.Phone>Vertical</OnIdiom.Phone>
<OnIdiom.Tablet>Horizontal</OnIdiom.Tablet>
</OnIdiom>
</StackLayout.Orientation>
</StackLayout>
Корректировка платформы
Корректировки могут быть сделаны для определенных платформ из кода C #, например, для изменения заполнения для всех целевых платформ.
if (Device.OS == TargetPlatform.iOS)
{
panel.Padding = new Thickness (10);
}
else
{
panel.Padding = new Thickness (20);
}
Вспомогательный метод также доступен для сокращенных объявлений C #:
panel.Padding = new Thickness (Device.OnPlatform(10,20,0));
Эти функции также доступны непосредственно из кода XAML:
<StackLayout x:Name="panel">
<StackLayout.Padding>
<OnPlatform x:TypeArguments="Thickness"
iOS="10"
Android="20" />
</StackLayout.Padding>
</StackLayout>
Использование стилей
При работе с XAML, используя централизованный Style
вы можете обновить набор стилизованных представлений из одного места. Все настройки идиомы и платформы также могут быть интегрированы в ваши стили.
<Style TargetType="StackLayout">
<Setter Property="Padding">
<Setter.Value>
<OnPlatform x:TypeArguments="Thickness"
iOS="10"
Android="20"/>
</Setter.Value>
</Setter>
</Style>
Использование пользовательских представлений
Благодаря этим инструментам настройки вы можете создавать пользовательские представления, которые могут быть интегрированы на вашу страницу.
Выберите « File > New > File... > Forms > Forms ContentView (Xaml)
и создайте представление для каждого конкретного макета: TabletHome.xaml
и PhoneHome.xaml
.
Затем выберите File > New > File... > Forms > Forms ContentPage
и создайте HomePage.cs
который содержит:
using Xamarin.Forms;
public class HomePage : ContentPage
{
public HomePage()
{
if (Device.Idiom == TargetIdiom.Phone)
{
Content = new PhoneHome();
}
else
{
Content = new TabletHome();
}
}
}
Теперь у вас есть HomePage
который создает другую иерархию представлений для идиом Phone
и Tablet
.