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

c# - WPF の ListBox の DataTemplate のコントロールにアクセスする方法

StackPanel を持つ ItemTemplate を含む ListBox があります。そのスタックパネルにアクセスして、その可視性を変更したいと考えています。

(mouseleftbutton の「closeAll」をクリックすると、可視性が折りたたまれます)

FindDescendantByName メソッドでそれを行うことができますが、画面上のリストボックス項目 (最初の 10 項目のみ) でのみ機能しますが、下にスクロールすると、他のリストボックス項目では機能しないことがわかります。

VisualTreeHelper が原因でエラーが発生すると思います。VisualTreeHelper の代わりに何を使用できますか?

ありがとう..

XAML コード

C# コード

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

c# - WPF でビジュアル ツリーからデタッチする方法

UIElement別のパネルで使用するために aからa を正しく削除しようとしてInlineUIContainerいますが、「指定されたビジュアルは既に別のビジュアルの子であるか、CompositionTarget のルートです。」というメッセージが表示されてプログラムがクラッシュし続けます。

私の痛みを説明する小さなアプリケーションを作成しました。このプログラムでは、ランディがガールフレンドによってボタンが殺され\削除されると、彼はまだ親から離れていませんUIElementIsland。そして、他の何かの子として Randy を追加しようとすると、アプリケーションがクラッシュします (The Apocalypse Button が私の主張を証明しています :))。ランディを削除する前\後にクリックしてランディの両親を確認すると、ランディが常にUIElementIsland子供の頃の下にいることに気付くことができます。

面白いアプリケーションなので、ただの楽しみでもコピーしてコンパイルしてください! ヘルプ\アイデアをいただければ幸いです!

C# の部分:

XAML:

コード全体はこれよりも短いはずでしたが、少し面白くするためにスパイスを加えました。私が誰かの一日を少し明るくしたことを願っています。それでも、助けてください:)。

答え:InlineUIContainer次 のように Randy から導出します。

今度は Randy を適切に殺して、UIElement 天国 (The StackPanel) に追加します。

みんな、ありがとう。