FrameworkElement.OnApplyTemplate 方法

2013/12/13

在派生类中重写后,每当应用程序代码或内部进程(如重新生成布局处理过程)调用 ApplyTemplate,都将调用此方法。 简而言之,这意味着就在 UI 元素在应用程序中显示前调用该方法。 有关更多信息,请参见“备注”。

Namespace:  System.Windows
程序集:  System.Windows(位于 System.Windows.dll 中)

public virtual void OnApplyTemplate()

未完全启用对 FrameworkElement 的 Windows Phone 模板支持。 相反,Windows Phone 架构对 ControlFrameworkElement 的直接子类)提供模板支持。 ContentPresenter 也存在专用模板行为。

对继承者的说明

此方法可以具有本机实现(由默认实现在 FrameworkElement 级别引用);因此,如果派生自 FrameworkElement,则应始终调用基实现。 如果派生自 Control 或进一步的子类,则 Control 实现调用 FrameworkElement 基。 因此,如果您调用直接基,则将隐式访问本机级别的实现。

派生类可以将此方法用作以下方案的通知或入口点:

  • 使用自定义代码生成可视化树的其余部分。

  • 在已应用的模板中运行依赖于可视化树的代码,例如,获取指向来自模板的命名元素的引用。

  • 引入仅当模板中的可视化树完整后才有存在意义的服务。

  • 将类定义的事件处理程序附加到模板的部件。 例如,您可能需要类逻辑来处理来自 TextBox 模板部件的 KeyDown 事件,以便更新 UI 状态,并改为引发特定于您的控件的其他事件。

  • 设置模板中取决于其他因素的元素的状态和属性。 例如,只有知道父元素时,或者当特定派生类使用公共模板时,才可搜索属性值。 不过请注意,设计良好的控件通常应通过 VisualStateManager 来处理其可视状态和行为状态。

OnApplyTemplate 通常是比 Loaded 事件更适于对模板创建的可视化树进行调整处理的点。 在 Windows Phone 中,Loaded 事件可能在应用模板之前发生,因此您可能无法在 Loaded 处理程序中对通过应用模板创建的可视化树进行调整。 有关更多信息,请参见 Loaded 的备注。

Windows Phone OS

受以下版本支持: 8.0, 7.1, 7.0

Windows Phone

显示:
© 2015 Microsoft