Можно ли использовать Xaml-дизайнер или intellisense с Xamarin.Forms?
Xamarin 3.0 представил Xamarin.Forms, мощную абстракцию пользовательского интерфейса, которая позволяет разработчикам легко создавать пользовательские интерфейсы, которые могут быть доступны для Android, iOS, и Windows Phone.
Кажется очень мощным, но я сталкиваюсь с несколькими трудностями для создания пользовательского интерфейса, поскольку Xamarin.Forms поставляется с более чем 40 элементами управления. Без intellisense или минималистского дизайнера он довольно контрпродуктивен для поиска всех свойств в официальном документе или путем просмотра кода С#.
Командная таблица Xaml по умолчанию такова, и нет ничего странного в том, чтобы добавлять новые элементы управления без какой-либо помощи.
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="App1.Class1">
<Label Text="{Binding MainText}" VerticalOptions="Center" HorizontalOptions="Center" />
</ContentPage>
Итак, есть ли шанс иметь intellisense внутри Xaml или использовать конструктор Xaml?
Ответы
Ответ 1
Xamarin.Forms
не поставляется с графическим дизайнером (пока?). Что касается intellisense, то есть 2 части:
- ссылка на элемент xaml с тегом x: имя в коде работает в Xamarin.Studio и VisualStudio
- Выполнение Xaml элементов и атрибутов работает в Xamarin.Studio, и поддержка для завершения значений атрибутов подходит очень скоро. К сожалению, intellisense для Xaml в VisualStudio сейчас не работает. Но проблема хорошо известна, и решения исследуются.
Ответ 2
У меня был успех с расширением Xamarin.Forms Intellisense в PCL, но не с SAP.
![enter image description here]()
Ответ 3
Intellisense был выпущен в его первом виде, более подробную информацию здесь:
Мобильные Essentials: инструменты для работы с мобильными разработчиками
Ответ 4
Xamarin Studio 6.1+ включает в себя предварительный просмотр XAML:
![введите описание изображения здесь]()
Это не идеально, но как "предварительный" выпуск делает достойную работу по рендерингу вашего XAML в разных разрешениях на iOS и Android, включая разные ориентации.
Требуется видеозапись: https://brax.tv/lesson/xamarin-forms-hello-xaml-previewer/
Xamarin Evolve Videos @https://evolve.xamarin.com
(Официальное видео Evolve во время этой публикации еще не в сети)
Ответ 5
Если у вас есть Resharper 9, intellisense работает в Visual Studio с расширением Xamarin.Forms Intellisense, упомянутым Clint Landry.
Ответ 6
Сторонняя компания разрабатывает конструктор Xamarin.Forms под названием UI Sleuth.
Они все еще находятся в режиме невидимости, но отправили пару демо-роликов:
Я рекомендую следовать за ведущим архитектором в Twitter. Здесь они публикуют последние обновления UI Sleuth!
Ответ 7
Все, что необходимо для реализации Intellisense на VS, содержит XAML-схему Xamarin.Forms в файле .xsd, размещенном в соответствующей папке визуальной студии во время установки. Я предполагаю, что пакет/задачи NuGet не имеют времени установки и доступа, требуемого операционной системой (если вы не запустите Visual Studio в качестве администратора и жестко заданных путей в задачах установки пакета NuGet, что не является хорошей идеей), чтобы сделать это.
Я задал тот же вопрос команде Xamarin, и они ответили, что Intellisense еще не придет после обновлений и дизайнера в будущем (не знаю, как скоро, даже для альфа-бета-каналов обновления).
Надеюсь, что это поможет...
Ответ 8
Я только что прочитал твит о дизайнере Xamarin.Forms на конференции Xamarin Evolve 2016.
В то же время вы можете использовать конструктор Windows Phone и конвертер, чтобы выплескивать разметку Xamarin.Forms, см.
http://www.gui-innovations.com/Blog%20Posts/windows-phones-forms-to-xamarin-forms.html
Этот инструмент также упоминается вместе с другими соответствующими инструментами:
https://github.com/MvvmCross/MvvmCross-Forms/wiki/XAML-Tools-for-Xamarin
Ответ 9
![введите описание изображения здесь]()
Я создал два видеоролика, в которых рассказывается, как вы можете использовать Xamarin Studio XAML Previewer:
Введение:
Использование данных проекта:
Данные проекта с ViewModelLocator:
Пример используемого кода:
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="STLBrews.Mobile.BreweriesPage"
xmlns:vm="clr-namespace:STLBrews.ViewModels;assembly=STLBrews.ViewModels"
BindingContext="{x:Static vm:ViewModelLocator.BreweriesVM}">
<ContentPage.Content>
<ListView
ItemsSource="{Binding Items}" >
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Orientation="Horizontal">
<Image Source="{Binding LogoUrl}"/>
<StackLayout Orientation="Vertical" Spacing="0" VerticalOptions="Center">
<Label Text="{Binding Name}" FontAttributes="Bold"/>
<Label Text="{Binding Description}" FontSize="10"/>
</StackLayout>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</ContentPage.Content>
</ContentPage>