我的目标是在用户以只读模式进入 UI 时禁用控件(文本框、单选按钮、...)及其所有子项(例如 tabitem 的选项卡)。
唯一的例外是滚动条,即使它是只读的,也应该启用它。
这是通过在 SO 上找到的以下代码优雅地完成的。这样做可以让 IsEnabled 属性继承给它的所有子项,同时允许启用滚动条。
public class AlwaysEnabledTabControlTabItem : TabItem
{
static AlwaysEnabledTabControlTabItem()
{
IsEnabledProperty.OverrideMetadata(
typeof(AlwaysEnabledTabControlTabItem),
new FrameworkPropertyMetadata(
null,
(o,
value) => true));
}
}
问题在于鼠标的滚轮(以及向上/向下翻页键)不再起作用。当您在选项卡上并且想要滚动时,没有任何反应。作为一个侧节点,如果您在窄滚动条上,鼠标滚轮就可以工作。
你将如何启用滚轮?