「AniScrollViewer」という名前のクラスを作成しました。垂直スクロール オフセット
を設定して、Scrollviewer コード ビハインドをアニメーション化できます。
public class AniScrollViewer : ScrollViewer {
public static readonly DependencyProperty CurrentVerticalOffsetProperty =
DependencyProperty.Register("CurrentVerticalOffset", typeof(double), typeof(AniScrollViewer),
new PropertyMetadata(new PropertyChangedCallback(OnVerticalChanged)));
public double CurrentVerticalOffset {
get { return (double)GetValue(CurrentVerticalOffsetProperty); }
set { SetValue(CurrentVerticalOffsetProperty, value); }
}
private static void OnVerticalChanged(DependencyObject property, DependencyPropertyChangedEventArgs e) {
AniScrollViewer viewer = property as AniScrollViewer;
viewer.ScrollToVerticalOffset((double)e.NewValue);
}
}
この「AniScrollViewer」をリストボックスにプッシュしたい
私はいくつかの問題を抱えています:
- Listbox クラスには既に「scrollviewer」が含まれています。
デフォルトのリストボックス スクロール ビューアーをカスタム AniScrollViewerに置き換えたいのですが、その方法がわかりません。 - Listbox コード ビハインドで ScrollViewer を取得したい。このような:
Listbox listbox (これは既に XAML で定義されています)
AniScrollViewer scrollviewer = listbox.~~~~;
助けてください。