只要确定不需要支持滚动条,ScrollBar
就是IsEnabled=False
。目前,我希望ScrollBar
只要IsEnabled=True
为Visible
。如何将IsEnabled
设为True
始终为ScrollBar
?
我使用MVVM模式。
答案 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
属性。
请注意,如果您明确使用此控件,这只会更改滚动条逻辑。许多控件在其模板中使用滚动条,如果要更改其行为,则需要完全替换其控件模板。总的来说,这不值得。