WPF開発ノウハウ集

ControlのScrollViewerをコードビハインドから取得する

/// <summary>
/// 要素に含まれるスクロールビューアーを取得します(見つからない時はnullを返します)
/// </summary>
private ScrollViewer GetScrollViewer(FrameworkElement element)
{
    if (VisualTreeHelper.GetChildrenCount(element) == 0)
    {
        return null;
    }

    FrameworkElement child = VisualTreeHelper.GetChild(element, 0) as FrameworkElement;

    if (child == null)
    {
        return null;
    }
    if (child is ScrollViewer)
    {
        return (ScrollViewer)child;
    }

    return this.GetScrollViewer(child);
}