【发布时间】:2020-04-19 08:13:10
【问题描述】:
以下类扩展了 UWP CalendarDatePicker...
public class MyDatePicker : CalendarDatePicker
{
protected override void OnApplyTemplate()
{
_backgroundBorder = base.GetTemplateChild("Background") as Border;
base.OnApplyTemplate();
}
}
GetTemplateChild("Background") 调用有什么作用?它显然返回一个Border 类型(此代码来自Microsoft Github 存储库),但Background 是什么?这些魔术字符串是在哪里定义的?
例如,如果我要以相同的方式扩展 TimePicker,那么对于扩展 TimePicker 的类的 GetTemplateChild 调用,我可以使用哪些元素?你是怎么解决这个问题的?
感谢任何指点。
【问题讨论】:
-
那个魔法字符串是一个硬编码的 x:Name 给 TemplateChild(=在 ControlTemplate 中使用的 UIElement)。检查generic.xaml 中定义的默认样式,您会发现可以在 GetTemplateChild 调用中指定的所有名称。
-
非常感谢。如果您将此作为答案发布,我会将其标记为这样!
标签: uwp