問題タブ [visual-tree]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
412 参照

wpf - ビジュアル ツリーを介して継承される WPF のフォント プロパティは何ですか?

WPF には、ビジュアル ツリーを通じて継承される特定のフォント プロパティがあります。これにより、たとえば、FontFamilya の変更が可能にUserControlなり、その中のすべてのテキストにその変更が反映されます。

ビジュアル ツリーで継承を介して渡されるすべてのフォント関連のプロパティは何ですか?

0 投票する
2 に答える
343 参照

c# - ContextMenuをDataGridTemplateColumnに追加するDataContextを指定する方法は?

私は DataGridTemplateColumns をプログラムで作成しています
DataTemplate dtStringTemplate = (DataTemplate)XamlReader.Load(sr, pc); dataGridTemplateColumn.CellTemplate = dtStringTemplate;

ContextMenu を DataGrid に追加しようとしましたが、編集可能なセルは独自のコンテキスト メニューを使用していました。

これまでのところ、TextBox コンテキスト メニューを期待どおりに表示する方法については、この投稿で理解できました: How to add a ContextMenu in the WPF DataGridColumn in MVVM?

上記の投稿をガイドとして使用して、App.xaml に Style と ContextMenu を作成しました。DataGrid のセルを右クリックすると、コンテキスト メニューが表示されます。しかし、関連付けられたコマンドを起動することができず、バインディングが正しくないのではないかと考えています。App.xaml の xaml は次のとおりです。

DataGrid の DataContext は MyViewModel です。MyViewModel には、CmdMenuItemOne という名前の public DelegateCommand があります。
残念ながら、CmdMenuItemOne が呼び出されることはありません。
バインディングで何を誤解していますか? ありがとう ...

0 投票する
2 に答える
1546 参照

c# - WPF:添付プロパティで、ビジュアルツリーが正しくロードされるまで待つ方法は?

WPF アプリに添付プロパティがあります。

以下のコードはOnLoadイベント内にありますが、ハッキーな 500 ミリ秒の遅延を追加しない限り機能しません。

この遅延を回避し、ビジュアル ツリーがいつ読み込まれたかを検出する方法はありますか?

更新 1

@Willからの回答によると、「ディスパッチャーを使用して適切な優先度を選択してください」。これは見事に機能します:

更新 2

DevExpress を使用している場合、LayoutTreeHelperクラスは、ビジュアル ツリーを上下にスキャンするのに役立ちます。

ビジュアル ツリーを上下にスキャンするサンプル コードについては、次を参照してください。

アップデート 3

添付プロパティを使用している場合、ビジュアル ツリーを確実に読み込む唯一の方法は、イベント ハンドラー内またはLoadedイベント ハンドラーの後でコードを実行することです。この制限を認識していないと、すべてが断続的に失敗します。上記のように、イベントが発生するまで待機するOnLoadedことは、他のランダムな形式の遅延を導入しようとする他の方法よりもはるかに優れています。

DevExpress を使用している場合、これはさらに重要です。Loadedイベントの前に何かをしようとすると、状況によってはクラッシュする可能性があります。

例えば:

  • window.Show()イベントの前に呼び出すLoadedと、状況によってはクラッシュが発生しました。
  • IsVisibleChangedイベントが発生する前にイベント ハンドラーにフックすると、Loaded状況によってはクラッシュが発生します。

免責事項: 私は DevExpress とは関係がありません。DevExpress は多くの優れた WPF ライブラリの 1 つです。Infragistics もお勧めします。

0 投票する
2 に答える
469 参照

c# - 表示されていない UserControl のスナップショットを作成する

まだ表示されていない UserControl のスナップショットを撮りたいです。それが私のコードです:

このコードは、アプリの起動時に「MyViewModel」ごとに実行されます。「MyViewModel」には、タブのコンテンツである「SubViews」のリストが含まれており、「F1」から「F12」を使用してボタンをアクティブにできる「FunctionKeyBar」が含まれています。しかし、スクリーンショットを作成した後、F1 から F12 を使用できなくなりました。また、言語の切り替えなど、他の問題もあります。表示されていないコントロールのスナップショットを作成する別の方法はありますか?

すべての返信に感謝します。

こんにちはベニー

0 投票する
2 に答える
37 参照

c# - 同じインスタンスを複数回破棄できるようにする必要があります

例外をスローせず.Disposeに同じインスタンスを複数回呼び出すことは可能ですか? IDisposableこれには何らかの定義がありますか?

例えば:

私がこれを求めている理由:

VisualTreeから継承する for 要素を検索するメカニズムをいくつか作成しましたIDisposableが、これらの要素のいずれかが前に破棄されるかどうかはわかりません。

ウィンドウクラスから切り出されたいくつかのコード

ありがとうございました!

0 投票する
1 に答える
30 参照

c# - ビジュアル ツリーで子孫の追加/削除を検出する手段はありますか

BigDaddyコントロールのペアがあります。それらを と と呼びましょうFlea。のビジュアル ツリーのどこにでも1 つまたは複数のFlea要素が表示される場合がありBigDaddyます。直接の子である必要がない場合、Fleaオブジェクトの追加/削除を検出する方法はありますか?BigDaddy

ツリーの例:

- また -

0 投票する
1 に答える
190 参照

c# - TabControl の背景を変更する

WPF TabControl の背景色を変更したい: ここに画像の説明を入力

Grid 要素 (TabControl の直接の子) はその親の背景色を継承しないため、TabControl の背景色の変更は機能しません。 ここに画像の説明を入力

以下のコードは機能しますが、後続のすべてのグリッドの背景色を変更します。

より適切な解決策はありますか?