CodeGo.net>在UWP中有TemplatePartAttribute的替代品吗?

我花了一些时间来发现这一点,但是特定于设计器的属性(例如TemplatePart)现在导致UWP应用程序的发行版本出现问题.

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

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

构建输出给了我这个:

warning : Type ‘Windows.UI.Xaml.Controls.Panel’ was not included in
compilation, but was referenced in type ‘MyAwesomeControl’. There may
have been a missing assembly.

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

有针对这个的解决方法吗?我是否必须仅允许设计时属性通过而对该类型启用反射?

我知道可以嵌入到项目中的rd.xml文件.但是,如果< Type Name =“ Windows.UI.Xaml.Controls.Panel” ... />是否包含在内,这是否意味着我要告诉编译器从.Net本机优化中排除该面板?

解决方法:

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

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

上一篇:c#-UWP无法通过FolderPicker从硬盘驱动器访问文件夹


下一篇:设置元素大小等于UWP上的另一个