UWP中是否有TemplatePartAttribute的替代?

时间:2015-09-30 06:31:31

标签: c# xaml windows-store-apps uwp

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

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

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

构建输出给了我这个:

  

警告:键入' Windows.UI.Xaml.Controls.Panel'不包括在内   编译,但在类型' MyAwesomeControl'中引用。也许有   一直缺少集会。

如果您希望构建工作,我必须排除该属性。但是,这违背了控制库的目的。我的图书馆用户不知道MyAwesomeControl模板中需要Panel名称为PART_Panel

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

我知道可以嵌入项目的rd.xml文件。但是,如果包含<Type Name="Windows.UI.Xaml.Controls.Panel" ... />,则表示我告诉编译器将该面板从.Net Native优化中排除?

1 个答案:

答案 0 :(得分:4)

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

如果您使用较旧的工具,可以放心地忽略该警告。