Я начал разработку пользовательского элемента управления UWP XAML с использованием новой языковой проекции C++/WinRT. Я правильно понял базовую структуру, но я застрял, когда дело доходит до определения атрибута TemplatePartAttribute
. В C# и даже в C++/CX это довольно просто, потому что язык имеет прямую поддержку для этого.
Теперь в C++/WinRT я предполагаю, что мне нужно определить атрибут runtimeclass
в исходном коде MIDL, но я понятия не имею, как это сделать правильно. Например:
[Windows.UI.Xaml.TemplatePart(L"PART_Button", ???)]
runtimeclass CustomControl : Windows.UI.Xaml.Controls.Control
{
CustomControl();
/* … */
}
В то время как свойство Name
для TemplatePartAttribute
легко установить, потому что это String
, как мне установить свойство Type
- три ??? - (что означает TypeName
в среде выполнения Windows)? Я не нашел никакой документации по этому поводу ни в официальных документах C++/WinRT, ни в документах MIDL 3.0.
РЕДАКТИРОВАТЬ (ВРЕМЕННОЕ РЕШЕНИЕ):
Кажется, что атрибут TemplatePart
не требуется для использования части шаблона в коде (используя метод GetTemplateChild()
), я все равно могу получить ссылку на элемент PART_Button
.