問題タブ [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.
wpf - ビジュアル ツリーを介して継承される WPF のフォント プロパティは何ですか?
WPF には、ビジュアル ツリーを通じて継承される特定のフォント プロパティがあります。これにより、たとえば、FontFamily
a の変更が可能にUserControl
なり、その中のすべてのテキストにその変更が反映されます。
ビジュアル ツリーで継承を介して渡されるすべてのフォント関連のプロパティは何ですか?
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 が呼び出されることはありません。
バインディングで何を誤解していますか? ありがとう ...
c# - WPF:添付プロパティで、ビジュアルツリーが正しくロードされるまで待つ方法は?
WPF アプリに添付プロパティがあります。
以下のコードはOnLoad
イベント内にありますが、ハッキーな 500 ミリ秒の遅延を追加しない限り機能しません。
この遅延を回避し、ビジュアル ツリーがいつ読み込まれたかを検出する方法はありますか?
更新 1
@Willからの回答によると、「ディスパッチャーを使用して適切な優先度を選択してください」。これは見事に機能します:
更新 2
DevExpress を使用している場合、LayoutTreeHelperクラスは、ビジュアル ツリーを上下にスキャンするのに役立ちます。
ビジュアル ツリーを上下にスキャンするサンプル コードについては、次を参照してください。
- DevExpress: 添付プロパティで、DevExpress がビジュアル ツリーの構築を完了したことを 100% 確信できるまで待つ方法は?
- DevExpress と LayoutPanel が常に他のすべての前にあることを確認する方法は?
アップデート 3
添付プロパティを使用している場合、ビジュアル ツリーを確実に読み込む唯一の方法は、イベント ハンドラー内またはLoaded
イベント ハンドラーの後でコードを実行することです。この制限を認識していないと、すべてが断続的に失敗します。上記のように、イベントが発生するまで待機するOnLoaded
ことは、他のランダムな形式の遅延を導入しようとする他の方法よりもはるかに優れています。
DevExpress を使用している場合、これはさらに重要です。Loaded
イベントの前に何かをしようとすると、状況によってはクラッシュする可能性があります。
例えば:
window.Show()
イベントの前に呼び出すLoaded
と、状況によってはクラッシュが発生しました。IsVisibleChanged
イベントが発生する前にイベント ハンドラーにフックすると、Loaded
状況によってはクラッシュが発生します。
免責事項: 私は DevExpress とは関係がありません。DevExpress は多くの優れた WPF ライブラリの 1 つです。Infragistics もお勧めします。
c# - 表示されていない UserControl のスナップショットを作成する
まだ表示されていない UserControl のスナップショットを撮りたいです。それが私のコードです:
このコードは、アプリの起動時に「MyViewModel」ごとに実行されます。「MyViewModel」には、タブのコンテンツである「SubViews」のリストが含まれており、「F1」から「F12」を使用してボタンをアクティブにできる「FunctionKeyBar」が含まれています。しかし、スクリーンショットを作成した後、F1 から F12 を使用できなくなりました。また、言語の切り替えなど、他の問題もあります。表示されていないコントロールのスナップショットを作成する別の方法はありますか?
すべての返信に感謝します。
こんにちはベニー
c# - 同じインスタンスを複数回破棄できるようにする必要があります
例外をスローせず.Dispose
に同じインスタンスを複数回呼び出すことは可能ですか? IDisposable
これには何らかの定義がありますか?
例えば:
私がこれを求めている理由:
VisualTree
から継承する for 要素を検索するメカニズムをいくつか作成しましたIDisposable
が、これらの要素のいずれかが前に破棄されるかどうかはわかりません。
ウィンドウクラスから切り出されたいくつかのコード
ありがとうございました!
c# - ビジュアル ツリーで子孫の追加/削除を検出する手段はありますか
BigDaddy
コントロールのペアがあります。それらを と と呼びましょうFlea
。のビジュアル ツリーのどこにでも1 つまたは複数のFlea
要素が表示される場合がありBigDaddy
ます。直接の子である必要がない場合、Flea
オブジェクトの追加/削除を検出する方法はありますか?BigDaddy
ツリーの例:
- また -