我正在尝试为 Windows 应用商店应用程序开发一些自定义控件(如果这很重要,我实际上正在使用模板控件来执行此操作)。我遇到了一个相当模糊的错误(如标题所示)。唯一的附加信息是:
WinRT information: Cannot create instance of type 'SoundControls.tcNote' [Line: 13 Position: 51]
我不确定问题是否与定义控件布局的 Generic.xaml 文件(我认为错误似乎指向)或文件背后的代码有关。
无论哪种方式,这是两者的第 13 行:
通用的.xaml
BorderBrush="{TemplateBinding BorderBrush}"
代码背后
using Windows.UI.Xaml.Controls.Primitives;
两者似乎都毫无意义和无害。有没有人知道如何更仔细地解决这个错误?我愿意发布代码片段等(如相关/请求),但我总是讨厌看一个问题,只看到几页代码。
编辑:
按要求构造函数:
this.DefaultStyleKey = typeof(tcNote);
(GetTemplateChild("PART_note") as Thumb).DragStarted += tcNote_DragStarted;
(GetTemplateChild("PART_note") as Thumb).DragDelta += tcNote_DragDelta;
(GetTemplateChild("PART_note") as Thumb).DragCompleted += tcNote_DragCompleted;
第二次编辑/解决方案:
我发现第 13 行问题在 MainPage.xaml 中。
<SoundControls:tcNote HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" />
那条线看起来有一个错误(蓝色下划线,但它仍然让我构建),如果我将鼠标悬停在它上面,它会说“委托给实例方法不能有 null 'this'。” 问题似乎是 *PART_note* 尚不可用。我需要将构造函数中的这些行移到OnApplyTemplate方法中。