Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何将滚动条的IsEnabled设置为始终为True?_.net_Wpf - Fatal编程技术网

.net 如何将滚动条的IsEnabled设置为始终为True?

.net 如何将滚动条的IsEnabled设置为始终为True?,.net,wpf,.net,Wpf,每当确定不需要支持滚动条时,ScrollBar将被IsEnabled=False。目前,我想要滚动条,只要它是可见的,它就会是IsEnabled=True。如何将滚动条的IsEnabled设置为始终为True 我使用MVVM模式。滚动条覆盖IsEnabledCore: protected override bool IsEnabledCore { get { return base.IsEnabledCore && _canScroll; } } public cl

每当确定不需要支持滚动条时,
ScrollBar
将被
IsEnabled=False
。目前,我想要
滚动条
,只要它是
可见的
,它就会是
IsEnabled=True
。如何将
滚动条的
IsEnabled
设置为始终为
True


我使用MVVM模式。

滚动条
覆盖
IsEnabledCore

protected override bool IsEnabledCore
{ 
    get { return base.IsEnabledCore && _canScroll; }
} 
public class ScrollBar_AlwaysEnabled : ScrollBar
{
    protected override bool IsEnabledCore
    {
        get { return true; }
    }
}
这意味着如果它不能滚动,它将被禁用,并且您不能通过更改属性来覆盖它。修改此逻辑的唯一方法是子类化
滚动条
,并重写
IsEnabledCore

protected override bool IsEnabledCore
{ 
    get { return base.IsEnabledCore && _canScroll; }
} 
public class ScrollBar_AlwaysEnabled : ScrollBar
{
    protected override bool IsEnabledCore
    {
        get { return true; }
    }
}
ScrollBar
将始终尊重
IsEnabled
属性


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

谢谢@Discord。也许我会重新考虑我的项目请求。因为创建一个子类滚动条不值得。@Mr.Le在所有正确实现的应用程序中,无用的滚动条要么被隐藏,要么被禁用。让它们处于启用状态没有任何意义,因为这不是用户所期望的,而且会让人困惑。