Хотите знать, как выполнить установку стиля xaml с кодом в F #. Код достаточно прост:
this.DefaultStyleKey <- typeof<MyControl>
В проекте C # параметры сборки позволяют пометить XAML как команду пользовательской сборки ресурса: MSBuild: Compile
Я не вижу его на панели свойств, поэтому я попытался добавить его вручную в файл проекта ...
Есть идеи? Приложение загружается - пользовательский элемент управления не выводится (но код выполняется).
Спасибо
UPDATE:
Я проверил манифесты, и ресурс был включен, как и ожидалось, между моим проектом и портируемым проектом ... В поисках следующего шага.
ОБНОВЛЕНИЕ 2:
Что ж, он может быть включен в манифест ОК, но он не "компилируется", поскольку версия проекта на C # выдает ошибку в процессе сборки, когда я искажаю XML, а версия F # позволяет искаженному XML внесены в приложение.
ОБНОВЛЕНИЕ 3:
Загрузка XAML теперь в порядке (я думаю), однако у меня возникли некоторые проблемы со свойствами элемента управления:
static member ItemsProperty : DependencyProperty =
DependencyProperty.Register(
"Items",
typeof<MyMenuItemCollection>,
typeof<MyMenu>,
null);
member this.Items
with get () : MyMenuItemCollection = this.GetValue(MyMenu.ItemsProperty) :?> MyMenuItemCollection
and set (value: MyMenuItemCollection) = this.SetValue(MyMenu.ItemsProperty, value);
Проблема возникает при доступе:
for menuItem in this.Items do
let contentElement: FrameworkElement = menuItem.Content
где я получаю исключение нулевого указателя на this.Items; однако я инициализировал его в конструкторе:
do
this.Items <- new CoolMenuItemCollection()