問題タブ [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.
wpf - MainWindow のコンストラクター中に ItemsControl に子がありません
SOの質問「 WPF:コレクションアイテムをグリッドに配置する」への回答に基づいて、次のようになります。
ここで、コード ビハインドで theGrid の行数と列数を設定します。
もちろん、これにはグリッドを見つける必要があります。SO question WPFの方法でCrimsonXのFindChildを使用して、最初にitemsControl1を見つけ、次にそれを親として使用してtheGridを見つけました。
これは、ボタンのクリック イベント ハンドラーから呼び出されたときに機能します。ただし、ic の childrenCount が 0 であるため、MainWindow のコンストラクターから呼び出すと失敗します。
では、ウィンドウがユーザーに表示される前に、グリッドの行と列のコレクションを設定するにはどうすればよいでしょうか?
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」は何もありません。スクロールするビジュアルツリーがありません。
提案はありますか?前もって感謝します!ピレッギ
.net - "VisualTreeHelper.GetDescendantBounds()" は無限大を返します
VisualTreeHelper.GetDescendantBounds(SomeVisualItem)
メソッドが を返すのはなぜ(-Infinity,-Infinity,Infinity,Infinity)
ですか?
SomeVisualItem のCanvas.Left
, Canvas.Top
, Width
, ... は明示的に割り当てられます。
wpf - WPF で特定の 3d オブジェクトに対してヒット テストを実行するにはどうすればよいですか?
WPF 3D シーンに SphereMesh (Petzold.Media3D.dll の一部として MeshGeneratorBase から継承) があります。また、その球体には何千もの ScreenSpaceLines3D オブジェクトがあります。シーン内の SphereMesh 以外のすべてを無視して、マウス レイが球と交差する場所の XYZ 座標のみを見つけたいと考えています。球体とマウスの間に別のオブジェクト X があったとしても、オブジェクト X が存在しないかのように、マウスが球体のどこに当たるかを知りたいのです。
HitTest を使用して以下のコードを試してみましたが、シーン/ワールドに何千または何百万もの他のオブジェクトを追加すると、非常に遅くなります。オブジェクト障害の問題は、私が解決できない別の問題です。
おすすめは何ですか?
現在のコード:
何か助けはありますか?
ありがとう。
visualtreehelper - VisualTreeHelperを使用してWPFで子プロパティを取得しても値が返されない
visualTreeHelper.getchildを使用して子オブジェクトを見つけたら、そのオブジェクトの名前、または幅や高さなどのオブジェクトの他のプロパティを取得するにはどうすればよいですか?
すなわち
これは機能しません:
タイプ「名前」の値はsystem.windows.dependencyPropertyに変換できないと表示されます
また、これは機能しません(ただし、少なくともコンパイルされます)。
チャイルドビジュアルにカーソルを合わせると、そのプロパティを確認でき、名前がキャンバス(Can1)にある画像の名前に設定されていることがわかります。ただし、XとYは常に0です。
c# - VisualCollection から Visual HitTest への非表示?
WPF で VisualCollection、Visual、および HitTest を使用していますが、問題が発生しました。
次のようにカスタムの視覚的な描画を作成しようとしました:
次に、結果は長方形ですが、md1 ではないことがわかりました。
VisualTreeHelper がさらに内部で HitTest を実行しないように、MyDrawing を基本的なビジュアル要素にする方法を教えてください。
どうもありがとうございました。
c# - 述語条件を使用して要素を検索する
VisualTree のフレームワーク要素を述語で見つけるにはどうすればよいですか? そんな感じ :
私はそれを次のように使用します:
事前に助けてくれてありがとう!
wpf - コントロールからContentPresenter/ItemsPresenterを取得します
コントロールが存在する場合は、コントロールからContentPresenter/ItemsPresenterにアクセスする方法が必要です。
VisualTreeHelperでこれを簡単に行う方法がわかりません。
すべての子を再帰的に検索する必要がありますか?
c# - Prism でビジュアル ツリーの作成を強制する
含まれているTabControl
Prism 領域があります。特定のイベントに対して何らかの通知 (タブ ヘッダーの点滅など) をトリガーしたいのですが、Prism 領域のコンポーネントからこの通知をトリガーしたいと考えています。
このようなコンポーネントを含むタブが一度開かれると、これを使用VisualTreeUtil.GetParent()
してうまく機能し、それを見つけてTabControl
通知を示すように変更できるようになります。
VisualTreeUtil.GetParent()
しかし問題は、 null を返すため、ユーザーがタブを開くまでこれが機能しないことです。明らかに、Prism はそれまでビジュアル ツリーを接続しないためです。
領域を含む を呼び出しUpdateLayout()
てTabItem
も役に立ちません。ユーザーを混乱させるため、TabItems をプログラムで開きたくありません。
ある種の地域レジストリを実装する以外にできることはありますか (これはかなり醜く、維持するのが難しいでしょう)?
コードを見たい場合は、問題を示すための最小限の解決策を書きました。[構造を印刷] ボタンは、2 番目のタブの (最初はレンダリングされていない非表示の) hello TextBlockからビジュアル ツリーを上に移動しようとします。タブに切り替える前に、TextBlock のみを出力します。その後、ビジュアル ツリーのルートに到達します。これは、タブに切り替えずに達成したいことです。
wpf - VisualTreeHelper.GetChildren が TabItem の子を見つけられない
DepedendencyObject の子を見つける次の C# コードがあります。
下部に投稿された XAML の TabItems をループし、各 TabItem を上記のメソッドに渡し、すべての Expanders を検索するように要求すると、何も返されません。また、各タブ項目の Loaded イベントにアタッチされたイベント ハンドラーでこの要求を行っています。
私のアプローチの何が間違っていると思いますか?この特定のカスタム コントロールでは試していませんが、このメソッドは、別のカスタム コントロールで特定の型の子を見つけるために使用されています。主な違いは、探しているアイテムが TabItems の子であることです。