我正在学习为UWP开发自定义控件,并且必须开发一个包含ScrollViewer的控件。 的generic.xaml看起来是这样的:带滚动的UWP自定义控件
<Style TargetType="local:TemplatedScroller" >
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="local:TemplatedScroller">
<ScrollViewer x:Name="NumberScroller"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
</ScrollViewer>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
对应的CS类是非常简单的现在。
public sealed class TemplatedScroller : Control
{
public TemplatedScroller()
{
this.DefaultStyleKey = typeof(TemplatedScroller);
}
private ScrollViewer numberScroller;
protected override void OnApplyTemplate()
{
base.OnApplyTemplate();
numberScroller = GetTemplateChild("NumberScroller") as ScrollViewer;
}
}
在我控制我必须知道,当用户将滚动内容,所以我认为我可以注册一个属性使用RegisterPropertyChangedCallback滚动的VerticalOffset属性更改回调。我可以在OnApplyTemplate方法中注册回调。
我的问题是我应该在哪里调用相应的UnregisterPropertyChangedCallback?我无法找到任何Unload方法(或类似的)来覆盖。或者我的方法错了,这不是在UWP中做事情的方式吗?