問題タブ [visualtreehelper]

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 投票する
2 に答える
642 参照

wpf - MainWindow のコンストラクター中に ItemsControl に子がありません

SOの質問「 WPF:コレクションアイテムをグリッドに配置する」への回答に基づいて、次のようになります。

ここで、コード ビハインドで theGrid の行数と列数を設定します。

もちろん、これにはグリッドを見つける必要があります。SO question WPFの方法でCrimsonXのFindChildを使用して、最初にitemsControl1を見つけ、次にそれを親として使用してtheGridを見つけました。

これは、ボタンのクリック イベント ハンドラーから呼び出されたときに機能します。ただし、ic の childrenCount が 0 であるため、MainWindow のコンストラクターから呼び出すと失敗します。

では、ウィンドウがユーザーに表示される前に、グリッドの行と列のコレクションを設定するにはどうすればよいでしょうか?

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

silverlight - DataTemplateが別のDatatemplateにネストされている場合、father-templateプロパティとのバインドは困難です。

問題がウェブで何度も議論されていることを知っていますか。しかし、私のものは特定のケースであり、私はまだ正しい解決策を見つけていません。

シナリオ:Silverlight 4-2つのHierarchicalDataTemplateによって表示されるデータを含むTreeView。1つは第1レベルのデータ(つまり、TreeViewの親アイテムのデータ)を表示し、もう1つは第2レベルのデータ(子の場合)を表示します。アイテム)。子アイテムテンプレートでは、コントロールの可視性を親テンプレートのデータソースクラスのプロパティにバインドする必要があります。

これはXAMLコードです。

WPFの場合、次のように記述できます。

Visibility = "{Binding DataContext.Ori、Converter = {StaticResource rVisibilityConverter}、RelativeSource = {RelativeSource AncestorLevel = 2、AncestorType = {x:Type TreeViewItem}、Mode = FindAncestor}}"

...そしてそれは確かに機能します。ただし、Silverlightでは、RealitiveSourceを使用したバインディングモードとしてのFindAncestorがサポートされていないことを知っています。Webのソリューションは、ビジュアルツリーのコードビハインドで下にスクロールすることです。ビヘイビアで実現されているか、アタッチされたプロパティで実現されているかは関係ありません。解決策は次のとおりです。

私はこのようなソリューションを何度も使用しましたが、それらは常に機能します。しかし、この場合、私のDataTemplateは別のDataTemplateにネストされており、「OnAttached」メソッドを使用しているとき、「AssociatedObject」のプロパティ「Parent」は何もありません。スクロールするビジュアルツリーがありません

提案はありますか?前もって感謝します!ピレッギ

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

.net - "VisualTreeHelper.GetDescendantBounds()" は無限大を返します

VisualTreeHelper.GetDescendantBounds(SomeVisualItem)メソッドが を返すのはなぜ(-Infinity,-Infinity,Infinity,Infinity)ですか?

SomeVisualItem のCanvas.Left, Canvas.Top, Width, ... は明示的に割り当てられます。

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

wpf - WPF で特定の 3d オブジェクトに対してヒット テストを実行するにはどうすればよいですか?

WPF 3D シーンに SphereMesh (Petzold.Media3D.dll の一部として MeshGeneratorBase から継承) があります。また、その球体には何千もの ScreenSpaceLines3D オブジェクトがあります。シーン内の SphereMesh 以外のすべてを無視して、マウス レイが球と交差する場所の XYZ 座標のみを見つけたいと考えています。球体とマウスの間に別のオブジェクト X があったとしても、オブジェクト X が存在しないかのように、マウスが球体のどこに当たるかを知りたいのです。

HitTest を使用して以下のコードを試してみましたが、シーン/ワールドに何千または何百万もの他のオブジェクトを追加すると、非常に遅くなります。オブジェクト障害の問題は、私が解決できない別の問題です。

おすすめは何ですか?

現在のコード:

何か助けはありますか?

ありがとう。

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

visualtreehelper - VisualTreeHelperを使用してWPFで子プロパティを取得しても値が返されない

visualTreeHelper.getchildを使用して子オブジェクトを見つけたら、そのオブジェクトの名前、または幅や高さなどのオブジェクトの他のプロパティを取得するにはどうすればよいですか?

すなわち

これは機能しません:

タイプ「名前」の値はsystem.windows.dependencyPropertyに変換できないと表示されます

また、これは機能しません(ただし、少なくともコンパイルされます)。

チャイルドビジュアルにカーソルを合わせると、そのプロパティを確認でき、名前がキャンバス(Can1)にある画像の名前に設定されていることがわかります。ただし、XとYは常に0です。

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

c# - VisualCollection から Visual HitTest への非表示?

WPF で VisualCollection、Visual、および HitTest を使用していますが、問題が発生しました。

次のようにカスタムの視覚的な描画を作成しようとしました:

次に、結果は長方形ですが、md1 ではないことがわかりました。

VisualTreeHelper がさらに内部で HitTest を実行しないように、MyDrawing を基本的なビジュアル要素にする方法を教えてください。

どうもありがとうございました。

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

c# - 述語条件を使用して要素を検索する

VisualTree のフレームワーク要素を述語で見つけるにはどうすればよいですか? そんな感じ :

私はそれを次のように使用します:

事前に助けてくれてありがとう!

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

wpf - コントロールからContentPresenter/ItemsPresenterを取得します

コントロールが存在する場合は、コントロールからContentPresenter/ItemsPresenterにアクセスする方法が必要です。

VisualTreeHelperでこれを簡単に行う方法がわかりません。

すべての子を再帰的に検索する必要がありますか?

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

c# - Prism でビジュアル ツリーの作成を強制する

含まれているTabControlPrism 領域があります。特定のイベントに対して何らかの通知 (タブ ヘッダーの点滅など) をトリガーしたいのですが、Prism 領域のコンポーネントからこの通知をトリガーしたいと考えています。

このようなコンポーネントを含むタブが一度開かれると、これを使用VisualTreeUtil.GetParent()してうまく機能し、それを見つけてTabControl通知を示すように変更できるようになります。

VisualTreeUtil.GetParent()しかし問題は、 null を返すため、ユーザーがタブを開くまでこれが機能しないことです。明らかに、Prism はそれまでビジュアル ツリーを接続しないためです。

領域を含む を呼び出しUpdateLayout()TabItemも役に立ちません。ユーザーを混乱させるため、TabItems をプログラムで開きたくありません。

ある種の地域レジストリを実装する以外にできることはありますか (これはかなり醜く、維持するのが難しいでしょう)?

コードを見たい場合は、問題を示すための最小限の解決策を書きました。[構造を印刷] ボタンは、2 番目のタブの (最初はレンダリングされていない非表示の) hello TextBlockからビジュアル ツリーを上に移動しようとします。タブに切り替える前に、TextBlock のみを出力します。その後、ビジュアル ツリーのルートに到達します。これは、タブに切り替えずに達成したいことです。

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

wpf - VisualTreeHelper.GetChildren が TabItem の子を見つけられない

DepedendencyObject の子を見つける次の C# コードがあります。

下部に投稿された XAML の TabItems をループし、各 TabItem を上記のメソッドに渡し、すべての Expanders を検索するように要求すると、何も返されません。また、各タブ項目の Loaded イベントにアタッチされたイベント ハンドラーでこの要求を行っています。



私のアプローチの何が間違っていると思いますか?この特定のカスタム コントロールでは試していませんが、このメソッドは、別のカスタム コントロールで特定の型の子を見つけるために使用されています。主な違いは、探しているアイテムが TabItems の子であることです。