在UWP中有TemplatePartAttribute的替代吗?

本文关键字:UWP 中有 TemplatePartAttribute | 更新日期: 2023-09-27 18:15:18

我花了一点时间才发现这一点,但是像TemplatePart这样的特定于设计器的属性现在正在引起我的UWP应用程序发布版本的问题。

将此属性应用于控件是在使用反射。

[TemplatePart(Name = PART_Panel, Type = typeof(Panel))]
public class MyAwesomeControl : Control
{
   ...
}

和构建输出给我这个:

警告:输入"Windows.UI.Xaml.Controls"。"Panel"不包括在内编译,但在类型'MyAwesomeControl'中被引用。有可能

如果您想要构建工作,我必须排除该属性。然而,这违背了控制库的目的。我库的用户不知道MyAwesomeControl的模板中需要一个名称为PART_PanelPanel

有解决办法吗?我是否必须为该类型启用反射才能允许设计时属性通过?

我知道rd.xml文件可以嵌入到一个项目中。然而,如果包含<Type Name="Windows.UI.Xaml.Controls.Panel" ... />,这是否意味着我告诉编译器从。net原生优化中排除该面板?

在UWP中有TemplatePartAttribute的替代吗?

这是您正在运行的。net Native tools (ilc.exe)版本中的一个不幸的错误。这个属性在Visual Studio的Update 1版本中得到了正确的支持。你可以在这里获得RC: https://www.visualstudio.com/en-us/news/vs2015-update1-vs.aspx

如果你还在使用旧的工具,你可以安全地忽略这个警告。