2014-10-08 3 views
5

Я пытаюсь создать кросс-платформенное приложение с использованием Xamarin.Forms. Насколько я знаю, пользовательский интерфейс будет создан из кода, и файл .axml будет сгенерирован автоматически.Могу ли я создать интерфейс в Xamarin.Forms с помощью XAML

Могу ли я изменить файл .axml для редактирования пользовательского интерфейса? Я пробовал редактировать, но все, что появляется, это то, что написано в коде. то есть: hello forms

UPDATE

public static Page GetMainPage() 
     { 
      return new simplerow(); 
     } 
+0

Его трудно сказать из вашего обновления, что это/что не работает. Если вы хотите отправить через свой проект, я посмотрю? Мои контактные данные находятся в моем профиле. – Pete

+0

@Pete Я выложу полный код здесь завтра. Спасибо за вашу помощь :) – techno

+0

@Pete Вот ссылка на проект xamarin.forms https://www.dropbox.com/s/myhuun5fp3rrd70/testforms.zip?dl = 0 – techno

ответ

7

В Xamarin.Forms вы можете создавать свои страницы из определений разметки, которые являются общими для всех платформ.

Как правило, вы будете писать все свои страницы контента, используя Xamarin.Forms, однако вы можете смешивать и сопоставлять собственные страницы в приложении, если вы этого хотите.

Эти общие общие страницы, написанные в Xamarin.Forms, будет находиться, возможно, в проекта PCL или Общий проект таким образом, они могут быть повторно использованы в конкретных платформ проектов, каждый таргетинг определенная платформа ОС.

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

A Xamarin.Forms страница обрабатывается во время выполнения посредством интерпретации созданной композиции страницы.

Каждый элемент управления, указанный на странице, имеет свой собственный специфический для платформы рендеринг, за кадром, который будет выдавать выходные данные, которые нацелены на это ОС.

При написании Xamarin.Forms страницы, для-самое, то вы начнете изучать новый способ создания страниц, абстрагируются от тонкостей создания мобильных приложений на каждом отдельном платформу OS.

Существует поэтому нет редактируемых .axml, который генерируется и т.д., как вы будете писать свои страницы с помощью Xamarin.Forms разметки и контроля, и даже ваше собственное или другого пользовательского-управление, чтобы создавать собственные страницы приложения ,

Следующие link показаны примеры того, как писать XAML страниц.

Следующие link показаны примеры того, как писать с с кодом страниц.

+0

Спасибо за ответ, это делает многое понятным. Прошу прощения за поздний ответ. – techno

1

Вы получили это неправильно. Формы создаются либо с помощью кода, либо с помощью XAML. Никакой axml или что-либо постоянное не генерируется на уровне платформы, все делается во время выполнения (XAML - это скомпилированный во время компиляции).

Итак, измените код или XAML, если вы хотите что-то изменить. Или, если вам нужно что-то более требовательное, чем рассмотрите либо подклассифицирование существующего рендерера, либо создание собственного.

+0

Спасибо. Итак, если мне нужно создать приложение Xamarin.Forms, я могу создать пользовательский интерфейс с помощью XAML, т. Е. Путем редактирования Main. axml-файл, как в Android-приложениях. Но я так изменился, и изменение не отражено, все, что приходит, - это основное приветственное сообщение. Пожалуйста, дайте мне знать, если вам нужен код – techno

+1

Нет, нет axml. XAML является агностиком платформы для форм. [Подробнее читайте здесь] (http://developer.xamarin.com/guides/cross-platform/xamarin-forms/xaml-for-xamarin-forms/) –

+0

"(XAML сортируется во время компиляции)" сортируется из неправильного :) –

2

Наряду с предыдущим ответом re: .xaml вместо .axml, вам необходимо запомнить код запуска в app.cs, чтобы использовать вашу новую форму .xaml. Замените «новый ContentPage {...};» с «новым MyForm()»; (где «MyForm» - это название вашей блестящей новой формы XAML).

РЕДАКТИРОВАТЬ: Загружен проект из ссылки для удаления. Комментарии ниже ...

Здесь я вижу несколько вопросов. Я думаю, вам, возможно, придется пройти через пошаговые руководства и примеры приложений, предоставленных Xamarin, чтобы ускорить разработку концепций XF-приложений.

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

Во-вторых, удалите файл «test.xml» из папки ресурсов/макета проекта Android; в то время как файлы XAML действительно являются XML, они имеют 1) имеют расширение файла .xaml и 2) принадлежат к общему проекту.

Вот что вам нужно сделать, чтобы получить свой проект работы: (я предполагаю, что вы используете VS здесь, под Xamarin Studio, это немного отличается.)

  1. правой кнопкой мыши «testforms» общий проект
  2. Нажмите Add из контекстного меню и выберите «Новый элемент»
  3. в появившемся диалоговом окне выберите «Формы XAML страницу» и в области имя введите имя (например, «MyForm») (если вы используете XS, выберите «Новый файл» и «Forms ContentPage»)
  4. T его добавит два файла в ваш проект: файл XAML, содержащий ваш макет (например, MyForm.xaml) и файл с кодом (например: MyForm.xaml.cs).
  5. Открыть файл XAML, и изменить элемент этикетки, так что атрибут Текст

    Text = "Hello, World!"

  6. Изменить тело GetMainPage в вашем App.cs к следующему:

    возвращения новому MyForm();

  7. запустить приложение

Надеется, что это помогает!

+0

Спасибо, что указали это. Наконец, я могу использовать XAML, который я знаю для разработки UI :) – techno

+0

Я попробовал это и обновил код в файле app.cs, чтобы создать ui из файла simpleerow.xml. Но simpleelow не распознается. см. обновление. – techno

+0

Это просто не скомпилировать? Как выглядит ваш XAML? Вы включили пространство имен, в котором находится класс codebehind вашей формы? –