Tips

2025年2月11日火曜日

C# WPF

記事のカテゴリー: C#、.NET 9、WPF

日々のプログラミングで知り得たTipsを掲載していきます。

インデックス

ウィンドウ、コントロール

タブ移動がツールバーの外に出ていかない

KeyboardNavigation.TabNavigation添付プロパティにLocalを設定します。初期値はCycleになっています。

参照:

仮想化が無効になる条件は?
「パフォーマンスの最適化: コントロール」の「大きなデータ セットの表示」を参照してください。UIのパフォーマンスが悪いと感じたら仮想化が無効になっているかもしれません。
ツールバーのオーバーフローボタンの背景色を変えたい、消したい

ツールバーの継承クラスを作りOnApplyTemplateメソッドでToolBarOverflowPanelを取得し、BackgroundプロパティやVisibilityプロパティを設定します。

参照:

ドロップダウンボタンを使いたい

ツールバーにメニューを置きます。

XAML:

  1. <ToolBar>
  2. <Menu>
  3. <MenuItem Header="ドロップダウンボタン">
  4. <MenuItem Header="項目 1" />
  5. <MenuItem Header="項目 2" />
  6. </MenuItem>
  7. </Menu>
  8. </ToolBar>
タブコントロールのヘッダーを消したい

タブコントロールの内部のTabPanelを非表示にします。

XAML:

  1. <TabControl>
  2. <TabControl.Resources>
  3. <Style TargetType="TabPanel">
  4. <Setter Property="Visibility" Value="Collapsed" />
  5. </Style>
  6. </TabControl.Resources>
  7. </TabControl>

参照:

システムメニューを表示したい
SystemCommands.ShowSystemMenuメソッドを使用します。
DataTemplate内のバインディングが機能しない

不明ですが、バインディングのUpdateSourceTriggerプロパティにPropertyChangedを指定すると改善することがあります。

参照:

その他

クラスのフィールドの初期化を遅延させたい
Lazy<T>クラスを使用する。
秘密情報(パスワード、非公開鍵など)を管理する方法は?
ProtectedDataクラス(DPAPI)を使用して、暗号化して保存する。
XAMLでジェネリック型を扱う方法は?
「ジェネリック型とXAML」を参照してください。