2016-12-23 2 views
0

я просто быстрый вопрос о том, где я могу найти документацию о целях, как это ниже, что я вижу на много разных Например IOS приложений:Как создать menuitem (?) В формах Xamarin?

enter image description here

Есть образец проекта или документация где о том, как реализовать его в форме хасарина? Возможно, это невозможно, но есть ли аналогичный вариант для разработки форм Xamarin?

+0

Вы хотите, чтобы всплывающее меню вроде этого или панели инструментов? Если есть только 2 варианта, вы можете использовать переключатель –

+0

. Я бы предпочел всплывающее меню, подобное изображению, которое я разместил. Разумеется, возможен и коммутатор, но я хочу текст по каждой опции. – Martman

+0

Почему вы не используете ContentView? Вы можете либо сделать это модальным, либо просто добавить детей на нужную вам страницу –

ответ

1

Это segmented control. В Xamarin.Forms по умолчанию не поддерживается поддержка по умолчанию, вероятно, потому, что это не обычный элемент управления на всех трех платформах.

Существует несколько способов, если вы все еще хотите использовать его. В основном они разбиваются на два сценария: вы либо используете настоящий собственный элемент управления, либо должны создавать разные представления для iOS и других платформ, которые вы хотите использовать. Или вы имитируете сегментированный элемент управления, например, FreshEssentials NuGet by Michael Ridland. Их больше.

Если вы выберете последнюю реализацию, это будет легко и может быть выполнено прямо из XAML.

Если вы выберете первый вариант, вы можете либо сделать это с помощью custom renderer, либо с помощью функции Native Embedding (Xamarin.Forms 2.2.0+). Я написал об этом blogpost, но вот основные сведения. Я предполагаю, что вы используете XAML для моделирования вашего интерфейса.

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
    xmlns:local="clr-namespace:EmbedNativeAwesomeness" 
    xmlns:ios="clr-namespace:UIKit;assembly=Xamarin.iOS;targetPlatform=iOS" 
    x:Class="EmbedNativeAwesomeness.EmbedNativeAwesomenessPage"> 

<!-- Rest of page here --> 
</ContentPage> 

Сначала добавьте декларацию пространства имен ios на свою страницу. Обратите внимание на то, как в нем есть тег targetPlatform, что означает, что это будет включено только в том случае, когда нацелен проект iOS.

Теперь с префиксом ios: вы можете получить доступ ко всем элементам управления платформой iOS непосредственно в Forms, в XAML.

Таким образом, объявление сегментированного элемента управления, вероятно, будет примерно таким: <ios:UISegmentedControl /> и указав подходящие свойства для ваших нужд.

Есть некоторые недостатки этого метода прямо сейчас, но я уверен, что вы можете обойти его. Для получения дополнительной информации проверьте мой блогпост (и сопровождающий sample code) или еще несколько ресурсов here.

+0

Спасибо большое за это :) Только то, что я искал. Вы проверите это прямо сейчас – Martman