【发布时间】:2017-01-01 00:48:02
【问题描述】:
我正在尝试获取Thumb 的Slider。
_thumb = ((Track)AssociatedObject.Template.FindName("PART_Track", AssociatedObject))?.Thumb;
这会引发 NRE,因为 Template 为空。为什么在应用程序启动期间Template 为空?我该如何解决?
我尝试了下面的代码
AssociatedObject.ApplyTemplate(); // no effect. returns false.
var template = AssociatedObject.Template; // returns null.
即使我应用了模板,它仍然为空。
之前我覆盖了滑块 OnApplyTemplate 并且模板不为空。
public override void OnApplyTemplate()
{
// works fine.
_thumb = ((Track)this.Template.FindName("PART_Track", this))?.Thumb;
base.OnApplyTemplate();
}
但现在我正在尝试为 Slider 创建 Behavior 而不是创建子类,因此我无法覆盖。任何想法如何解决这个问题?
【问题讨论】:
标签: c# wpf wpf-controls expression-blend