Созданы ли пользовательские элементы управления Xamarin.Forms так же, как WPF / Desktop? - PullRequest
0 голосов
/ 03 апреля 2019

Я довольно давно занимаюсь созданием настольных приложений на C # и WPF.Можно с уверенностью сказать (это не значит, что я хорош в этом), что я знаю, как создавать собственные элементы управления и необходимый стиль, используя этот код (сокращенно):

public class HexadecimalBox : ExtendedTextBox
{
    public static readonly DependencyProperty RedProperty = DependencyProperty.Register("Red", typeof(int), typeof(HexadecimalBox), new PropertyMetadata(0, Value_PropertyChanged));

    public int Red
    {
        get => (int)GetValue(RedProperty);
        set => SetValue(RedProperty, value);
    }

    static HexadecimalBox()
    {
        DefaultStyleKeyProperty.OverrideMetadata(typeof(HexadecimalBox), new FrameworkPropertyMetadata(typeof(HexadecimalBox)));
    }

    //Overrides, methods, events registered inside the OnApplyTemplate, etc.
}

И этотакже сокращенный стиль (внутри файла Themes / Generic.xaml):

<!--HexaDecimalBox Style-->
<Style TargetType="{x:Type n:HexadecimalBox}">
    <Setter Property="MaxLength" Value="9"/>

    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type n:HexadecimalBox}">
                <Border Width="{TemplateBinding Width}" Height="{TemplateBinding Height}" MinWidth="{TemplateBinding MinWidth}"
                        BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"
                        Background="{TemplateBinding Background}" VerticalAlignment="{TemplateBinding VerticalAlignment}"
                        HorizontalAlignment="{TemplateBinding HorizontalAlignment}" SnapsToDevicePixels="True">
                    <ScrollViewer x:Name="PART_ContentHost" Focusable="False" HorizontalScrollBarVisibility="Hidden"
                                  VerticalScrollBarVisibility="Hidden" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"/>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>

    <Style.Triggers>
        <Trigger Property="IsEnabled" Value="False">
            <Setter Property="Opacity" Value="0.7"/>
        </Trigger>
    </Style.Triggers>
</Style>

Итак, я хочу узнать, как разработать кроссплатформенное приложение (Android и iOS) с пользовательскими элементами управленияв основном с тем же пользовательским интерфейсом.

Я только начал читать об этом, но я хочу быть уверен, что можно создать что-то подобное.

Как мне добиться этого с Xamarin.Forms?Это возможно?Насколько он отличается от WPF?

1 Ответ

1 голос
/ 04 апреля 2019

Я не использую WPF раньше, но на официальном сайте есть подробный документ, который помогает WPF и Windows Forms developers изучать разработку мобильных приложений с помощью Xamarin путем перекрестной ссылки на их существующие знания и опыт, чтобы мобильные идиомы и примеры переноса настольных приложений на мобильные устройства.

Вот документ: Кроссплатформенность для разработчиков настольных систем .

В этой части речь идет о Сравнении элементов управления пользовательского интерфейса .

Я хочу научиться разрабатывать кроссплатформенное приложение (Android и iOS), с пользовательскими элементами управления, в основном с тем же интерфейсом.

Если вы используете Xamarin.forms, Android и iOS имеют один и тот же пользовательский интерфейс.

Этот документ о том, как создать элементы управления в Xamarin. Там есть образцы, которые вы можете посмотреть и изучить.

...