私の目標は、ユーザーが読み取り専用モードで UI に入ったときに、コントロール (textboxe、radiobutton、...) とそのすべての子 (tabitem のタブなど) を無効にすることです。
唯一の例外は、読み取り専用であっても有効にする必要があるスクロールバーです。
これは、SO にある次のコードによってエレガントに終了されます。このようにすると、IsEnabled プロパティがすべての子に継承され、スクロールバーを有効にできます。
public class AlwaysEnabledTabControlTabItem : TabItem
{
static AlwaysEnabledTabControlTabItem()
{
IsEnabledProperty.OverrideMetadata(
typeof(AlwaysEnabledTabControlTabItem),
new FrameworkPropertyMetadata(
null,
(o,
value) => true));
}
}
問題は、マウスのスクロール ホイール (およびページ アップ/ダウン キー) が機能しなくなったことです。タブにいてスクロールしたい場合、何も起こりません。サイド ノードとして、狭いスクロールバー自体を使用している場合、マウス ホイールが機能します。
スクロールホイールもどのように有効にしますか?