void UpdateScrollbarVisibility ()
{
// Update horizontal ScrollBar
Visibility horizontalVisibility;
switch (HorizontalScrollBarVisibility)
{
case ScrollBarVisibility.Visible:
horizontalVisibility = Visibility.Visible;
break;
case ScrollBarVisibility.Disabled:
case ScrollBarVisibility.Hidden:
horizontalVisibility = Visibility.Collapsed;
break;
default: // Avoids compiler warning about uninitialized variable
case ScrollBarVisibility.Auto:
horizontalVisibility = ScrollInfo == null || ScrollInfo.ExtentWidth <= ScrollInfo.ViewportWidth ? Visibility.Collapsed : Visibility.Visible;
break;
}
if (horizontalVisibility != ComputedHorizontalScrollBarVisibility) {
SetValueImpl (ComputedHorizontalScrollBarVisibilityProperty, horizontalVisibility);
RaiseVisibilityChangedEvent (horizontalVisibility, AutomationOrientation.Horizontal);
InvalidateMeasure ();
}
// Update vertical ScrollBar
Visibility verticalVisibility;
switch (VerticalScrollBarVisibility)
{
case ScrollBarVisibility.Visible:
verticalVisibility = Visibility.Visible;
break;
case ScrollBarVisibility.Disabled:
case ScrollBarVisibility.Hidden:
verticalVisibility = Visibility.Collapsed;
break;
default: // Avoids compiler warning about uninitialized variable
case ScrollBarVisibility.Auto:
verticalVisibility = ScrollInfo == null || ScrollInfo.ExtentHeight <= ScrollInfo.ViewportHeight ? Visibility.Collapsed : Visibility.Visible;
break;
}
if (verticalVisibility != ComputedVerticalScrollBarVisibility) {
SetValueImpl (ComputedVerticalScrollBarVisibilityProperty, verticalVisibility);
RaiseVisibilityChangedEvent (verticalVisibility, AutomationOrientation.Vertical);
InvalidateMeasure ();
}
}