如何为ScrollBar设置IsEnabled始终为True?

时间:2015-05-23 02:40:03

标签: .net wpf

只要确定不需要支持滚动条,ScrollBar就是IsEnabled=False。目前,我希望ScrollBar只要IsEnabled=TrueVisible。如何将IsEnabled设为True始终为ScrollBar

我使用MVVM模式。

1 个答案:

答案 0 :(得分:1)

ScrollBar会覆盖IsEnabledCore

protected override bool IsEnabledCore
{ 
    get { return base.IsEnabledCore && _canScroll; }
} 

这意味着如果它无法滚动,则会被禁用,并且您无法通过更改属性来覆盖它。修改此逻辑的唯一方法是子类ScrollBar并覆盖IsEnabledCore

public class ScrollBar_AlwaysEnabled : ScrollBar
{
    protected override bool IsEnabledCore
    {
        get { return true; }
    }
}

ScrollBar将始终尊重IsEnabled属性。

请注意,如果您明确使用此控件,这只会更改滚动条逻辑。许多控件在其模板中使用滚动条,如果要更改其行为,则需要完全替换其控件模板。总的来说,这不值得。

相关问题