Я бы отказался от этого усилия прямо сейчас.
Вместо этого найдите исходный код Xamarin.Forms, щелкнув правой кнопкой мыши имя класса в коде и выбрав «Перейти к объявлению» - вы можете увидеть весь исходный код из Xamarin.Forms и многих других библиотек.
Код не врет, документация - не уверен :)
Если вы сделаете это на Label, вы увидите его Связываемые свойства прямо над классом, включая их тип. Теперь посмотрите на FontProperty - в параметрах типа есть ссылка на класс Font - щелкните по нему. У класса есть атрибут [TypeConverter(typeof(FontTypeConverter))]. Щелкните FontTypeConverter и посмотрите, как это работает.
После небольшой практики вам может быть очень полезно узнать, что на самом деле делает код, независимо от того, что говорится или не говорится в документации.
Если вы хотите понять XAML, начните с просмотра одного из многих онлайн-руководств по WPF или Silverlight, чтобы понять, как он работает - концепция та же, а технологии существуют гораздо дольше, ресурсов предостаточно.
Примерный набросок того, как работает XAML:
У вас есть классы, созданные в .NET и, возможно, отмеченные некоторыми атрибутами. XAML позволяет десериализовать сложную структуру из XML.
Каждый элемент XML отображается на тип класса. Каждый атрибут XML отображается на свойство этого класса. Некоторые свойства легко вписать в атрибут (см. Пример «Шрифт» выше, другой - «Цвет»); свойства, которые сами по себе являются структурами, могут быть определены внутри дочернего элемента XML с именем, например:
<Label Text="this is a label">
<Label.Font>
<Font....>
</Label.Font>
</Label>
Существует несколько важных концепций, связанных с XAML, например:
BindlableObject, позволяющий привязать значения свойств к одному -другой, поэтому, когда одно меняется, другое тоже меняется
Расширения разметки позволяют для выражения вещей в XAML, таких как ссылка на ресурс или создание привязки
Преобразователи типов могут преобразовывать между типами значений и разрешать такие вещи, как использование имени цвета или привязка свойств int к string.
person
Sten Petrov
schedule
18.07.2014