1

ScrollViewer の Scrollbar の幅または高さをプログラムで決定するにはどうすればよいですか? ScrollViewer の現在の状態に基づく現在のサイズではありません (スクロールバーの可視性を簡単にテストし、ViewerPortWidth/Height および ScrollViewer ActualWidth/Height に対して計算できるため)。

テンプレート化された幅に基づいて、スクロールバーのサイズ知る必要があります。デフォルトは 18 (マージン -1) です。しかし、魔法の数 18 を計算に使用するとどうなるかは誰もが知っています。私のユーザーの何人かは、ScrollViewer で Scrollbars をテンプレート化できました。

ありがとう!

4

2 に答える 2

2

SystemParameters.ScrollWidth を使用できます。

于 2010-06-03T03:06:35.840 に答える
1

Silverlight Toolkit の VisualTreeHelper は、次の方法で使用できます。

var verticalScrollbar = view.GetVisualChildren().OfType<FrameworkElement>()
        .FirstOrDefault(e => e.Name == "VerticalScrollBar");
var horizontalScrollbar = view.GetVisualChildren().OfType<FrameworkElement>()
        .FirstOrDefault(e => e.Name == "HorizontalScrollBar");
var width = verticalScrollbar == null ? 0 : verticalScrollbar.ActualWidth;
var height = horizontalScrollbar == null ? 0 : horizontalScrollbar.ActualHeight;

ここで、viewは ScrollViewer のインスタンスです (インスタンスを取得したと思います)。

于 2012-02-13T09:28:56.847 に答える