我正在學習爲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中做事情的方式嗎?