Как использовать атрибут TemplatePart в пользовательском элементе управления? - PullRequest
0 голосов
/ 11 октября 2018

Я начал разработку пользовательского элемента управления 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.

РЕДАКТИРОВАТЬ (ВРЕМЕННОЕ РЕШЕНИЕ) :
Похоже, что *Атрибут 1018 * не требуется для использования части шаблона в коде (используя метод GetTemplateChild()), я могу получить ссылку на элемент PART_Button в любом случае.

1 Ответ

0 голосов
/ 15 октября 2018

Вы просто указываете имя типа для второго параметра.

runtimeclass Button : Windows.UI.Xaml.Controls.Button
{
  /* ... */
}

[Windows.UI.Xaml.TemplatePart("PART_Button", Button)]
runtimeclass Control : Windows.UI.XAML.Controls.Control
{
  /* ... */
}

Что-то подобное должно работать.

...