問題タブ [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 投票する
4 に答える
7515 参照

wpf - ListBoxItem.Parentは何も返さず、VisualTreeHelper.GetParentからも取得できません。

ListBoxItemの親コンテナを抽出するにはどうすればよいですか?次の例では、ListBoxItemまで移動できますが、それより高い場合はNothingを取得します。



アップデート

これが起こります(「親」変数はnullのままであることに注意してください):

こんな感じ

0 投票する
0 に答える
5917 参照

.net - 視覚ツリーと論理ツリーの概念

Visualおよびツリーの概念は理解していますlogicalが、これらの実際の使用法と必要性をまだ理解できていません。これらのツリーについてすべてを知る必要はありませんが、いくつかの高度なシナリオでは役立つと思います。

私はすでに次の記事を読んでおり、概念を理解しています

http://www.codeproject.com/KB/WPF/WpfElementTrees.aspx

http://blogs.msdn.com/b/mikehillberg/archive/2008/05/23/of-logical-and-visual-trees-in-wpf.aspx

私が理解したいのは、フレームワーク内でこれらを使用することです(簡単な言葉で理解しやすいシナリオで)? ビジュアル ツリーまたは論理ツリーを使用するタイミングを正確に把握するにはどうすればよいでしょうか。これらの木を視覚化するのに役立つ他の情報はありますか?

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

silverlight - Silverlight のビジュアル ツリーに要素を追加する方法

これが私の特定の問題です:

Xaml:

ShrinkableContentControl のコード:

ここでの問題は、Shrinkable が Content であり、visualtree に追加されていないため、何も表示されないことです。

Shrinkable を ShrinkableContentControl の子として visualtree に追加する方法があるかどうか、誰か教えてもらえますか?

ありがとう、ヘンリー

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

c# - WPF:ビジュアルツリーを上って、クリックされた3dモデルが入っているModel3DGroupを見つける方法は?

Model3DGroups としていくつかの 3D モデルを表示しています。これらは、MouseDown イベントをキャッチする Viewport3D に囲まれています。

どの Model3DGroup (すべてに名前があります) がクリックされたかを特定したいと考えています。私はこれから始めています:

WriteLine コマンドで設定されたブレークポイントに到達した後、適切な変数を見つけるためにローカル ビューを見ていますが、見つかりません。modelvisual3d が属しているグループを見つけるために必要なパスを教えてもらえますか?

ツリーのスクリーンショットは次のとおりです。 代替テキスト

0 投票する
0 に答える
198 参照

wpf - 親ノードを展開せずに内部 TreeViewItem ノードにアクセスする方法

カスタム オブジェクトのコレクションにバインドされた WPF TreeView があります。各オブジェクトには、コンテナー TreeViewItem を展開する IsExpanded プロパティがあります。ビジュアル ツリーで親 TreeViewItem を展開せずに、各 TreeViewItem のコントロール コンテンツにプログラムでアクセスできるようにしたいと考えています。ただし、親を展開せずに上記のアイテムにアクセスしようとすると、ビジュアル ツリーにまだ追加されていないように見えます。誰かがこれを回避する方法を知っていますか?

0 投票する
3 に答える
1180 参照

wpf - レイアウトを再計算せずにビジュアル ツリーで UIElement を移動する

ドッキング コントロール (Actipro) を使用する WPF アプリケーション (.Net 4.0) があります。ドッキング ウィンドウをドッキングできます。その場合、「実際の」ウィンドウが作成され、コンテンツがそのウィンドウに割り当てられます。

もちろん、ビジュアル ツリー内のものを移動すると、完全なレイアウトが再トリガーされます。これらのドッキング ウィンドウの 1 つに、ダイアグラム コントロール (Mindfusion Diagramming、WPF コントロール) があるため、これは問題です。

この問題に対する直接的な解決策はないと思います。しかし、同様の問題を抱えている他のプログラマーがこの問題にどのように取り組んだのだろうか。レイアウトの再計算を回避する賢い方法はありますか?

理論的には、ダイアグラムは ScrollViewer 内にあるため、実際には何も変化しないため、配置されるたびに、使用可能なスペースの量は同じ (無限) のままです。

編集: 内部のダイアグラム コントロールがインタラクティブであることにも注意してください。ドラッグ&ドロップが必要です。

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

wpf - 一般的な方法でビジュアルツリーからアイテムを削除する

ビジュアルツリーからFrameworkElementを削除したいと思います。FrameworkElementにはParentプロパティがあるため、そこから削除することでこの問題を解決できることは明らかです。

問題は、FrameworkElementのParentプロパティがDependencyObjectであり、子の概念がないことです。したがって、この問題について私が見ることができるのは、親をキャストして、それが境界線、パネルなど(子の概念を持つ要素)であるかどうかを確認し、そこから削除することだけです。

明らかに、これは非常に柔軟なソリューションではなく、一般的なものでもありません。誰かがビジュアルツリーから要素を削除するためのより一般的なアプローチを提案できますか?

0 投票する
4 に答える
3250 参照

silverlight - Silverlight とビジュアル ツリーの操作

今、これは価値があるよりも面倒かもしれませんが、それにもかかわらず、今のところ私にとって本当に役に立ちます.

私が知りたいのは、実行時に Silverlight ビジュアル ツリーを操作する方法です。コントロールの追加や削除などの単純なことを行うのは簡単ですが、適度に複雑なツリーをトラバースする必要がある場合は、DOM ノードの置換を処理するために JQuery スタイルの構文 (LINQ もかなりクールだと思います) が欲しくなります。 、動きなど。

問題は、これを簡単に行うためのライブラリが存在するか、それとも私が見逃した何かが組み込まれているかということだと思います。

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

silverlight - Silverlight でのビジュアル ツリーの使用に関するヘルプ

ビジュアル ツリー ヘルパーを使用して必要なオブジェクトを取得する方法について質問があります。次のようにメイン ページから呼び出す DialogItemControll というユーザー コントロールがあります。

そして、ユーザー コントロールの保存ボタンをクリックすると呼び出されるメソッド ivSave_Click があります。そのメソッドは次のようになります。

これは、親の取得などを使用する私の試みを見ることができる場所です。あまりうまくできていません。だから私が欲しいのは、オブジェクト全体を次のようにすることです:

私の DialogItemControll は次のようになります:

C1ウィンドウはユーザーコントロールと同じで、サードパーティのコントロールです。オブジェクト全体を取得するためにツリー ヘルパーを適切に使用する方法を教えてください。

ありがとう

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

wpf - WPF TabControl の子

これが私の現在のシナリオです。WPF ウィンドウの単一の TabControl の異なる TabItems 内に複数の UserControls があります。何かのようなもの:

インデントで申し訳ありません。何らかの理由で、ここでコードを適切にインデントできません:(

私がする必要があるのは、決定することです(できれば、異なる UserControls のどれが現在表示さTabControl.Loadれているかをメソッドで確認します。動的な方法でこれを行う必要があります。TabItems とその子の間の関係をハードコードすることはできませ ん。これは動的 UI であり、事前にどのコントロールがあるかを知る方法がないためです。if (TabControl.SelectedItem is XXXX)...

少し調べてみたところ、TabItemコントロールが「子」のビジュアルツリーに表示されないことがわかりました。のみが表示され、ContentPresenter次にTabControlそれ自体が表示されます。tabItems には独自のコンテンツが「含まれていない」ように見えるため、たとえば、FindAncestorTab Items に対して a を実行できませんでした。

もう 1 つの興味深い事実は、ユーザー コントロールのLoadedイベントが起動時に呼び出されていることです。画面に表示されているかどうかに関係なく。

理想的なシナリオは、ユーザーコントロールが下にある TabItem が選択されたときにのみユーザーコントロールで発生するイベントを見つけることです。

どんなアイデアでも大歓迎です。前もって感謝します