1

我开始使用新的 C++/WinRT 语言投影开发 UWP XAML 自定义控件。TemplatePartAttribute我得到了正确的基本结构,但是在定义属性时我被卡住了。在 C# 甚至 C++/CX 中,这非常简单,因为该语言直接支持这一点。

现在在 C++/WinRT 中,我假设我必须runtimeclass在 MIDL 源代码中定义属性,但我不知道如何正确处理。例如:

[Windows.UI.Xaml.TemplatePart(L"PART_Button", ???)]
runtimeclass CustomControl : Windows.UI.Xaml.Controls.Control
{
    CustomControl();

    /* … */
}

虽然 the 的Name属性TemplatePartAttribute很容易设置,因为它是 a String,但我该如何设置Type属性 - 三个 ??? - (这是TypeNameWindows 运行时中的一个)?我在官方 C++/WinRT 文档和 MIDL 3.0 文档中都没有找到任何关于此的文档。

编辑(解决方法)
似乎TemplatePart不需要在代码中使用模板部分(使用方法)该属性,无论如何GetTemplateChild()我都可以获得对元素的引用。PART_Button

4

1 回答 1

1

您只需为第二个参数指定类型的名称。

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

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

像这样的东西应该工作。

于 2018-10-15T18:59:18.863 回答