問題タブ [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.
c# - ComboBox から項目を選択的に削除するオプションを追加するには?
文字列を表示するがありComboBox
ます。リストからいくつかの項目を削除するオプションを追加するにはどうすればよいComboBox
ですか? 私は試した:
しかし、ユーザーが選択したアイテムを見つける方法がわかりません:
各アイテムの横にアイコンを配置してもかまいません。クリックすると関連するアイテムが削除されますが、その方法がわかりません..
概要:
これが最終的に私がそれを解決した方法です(クレジットは、以下の受け入れられた回答で、を使用してNawed Nabi Zada
「登山」の主なアイデアを提供したにVisualTreeHelper.GetParent(...)
ComboBoxItem
属します)
分離コード:
c# - データ テンプレートにネストされているコード ビハインド ボタンを取得しようとする
リストボックスを埋めるデータベースがあり、次のステップの前に、tooglebuttons を使用してユーザーの選択をカスタマイズする機会が必要です。
だから私はコードビハインドで彼の選択に関する情報を取得したい. この回答には、VisualTreeHelper を使用するコードが含まれています。
これは私のxamlコードです
そして、ここに答えから取られた方法があります:
そして私はこの行で私の子供を見つけようとします
そして、次の行にエラーが表示されます。
タイプ 'System.InvalidOperationException' の例外が System.Windows.ni.dll で発生しましたが、ユーザー コードでは処理されませんでした」
私の間違いは何ですか?このボタンにアクセスするにはどうすればよいですか?
c# - DataTemplate で生成された UIElement を見つける方法
こんにちは、DataTemplate から生成された UIElement を見つけようとしています
しかし、ContentPresenter のどこかにあるはずの UserControl を見つけることができません。ブレークポイントとスヌープを介してコントロールを調べましたが、UserControl が見つかりません。
誰かが私がそれを見つけることができる場所を教えてもらえますか?
ここで私のテストプロジェクト:
アプリ XAML
意見
VM
メインウィンドウ XAML
コードビハインド
wpf - ScrollViewer、VisualTree 要素がすべてロードされていない WPF ListView の大きなリスト
私はWPFリストビューを持っており、リストが大きい場合はスクロールビューアーが表示されます。ListView には、チェックボックス要素を持つ項目が含まれています。ユーザーがすべてを選択したり、すべてを選択解除したりできるようにします。
私が経験した問題は、リストが大きい場合のみです。つまり、要素のサブセットが表示され、ユーザーはスクロール バーを使用して残りの要素を表示する必要があります。すべての要素を選択してすべての要素を選択解除するコードは、VisualTreeHelper ヘルパー クラスを使用して、チェックボックスのプロパティ IsChecked を true または false に設定しています。ただし、表示されている要素に対してのみ機能します。たとえば、画面に 10 個のチェックボックスが表示される 14 個のチェックボックスを持つコレクションがある場合、表示されている 10 個のみが選択されます。ただし、[すべて選択] をクリックする前に、上下にスクロールしてアイテムを表示すると、14 個すべてが選択されます。したがって、VisualTree は必要な要素のみをロードするように見えます。すべての要素を強制的にロードする方法はありますか?
ListView で ScrollViewer を無効にし、ScrollViewer で囲むことで動作させることができました。これは正しいアプローチですか?
前:
機能するソリューション:
お知らせ下さい!
c# - wpf でのコンボ ボックス選択による奇妙な動作
私は、さまざまなドックオプションに非常に多くの子ウィンドウを持つメインウィンドウがあるアプリケーションに取り組んでいます。したがって、1 つのドックには、ユーザーが選択したエンティティのプロパティを変更できるプロパティ パネル ウィンドウがあり、値を変更した後、ユーザーはコントロールの下部にある適用ボタンをクリックする必要があります。したがって、ユーザーが何らかの値を変更し、適用をクリックする代わりに、ユーザーがプロパティ パネル ビューのサブ コントロール以外の場所をクリックすると、「最初にクリックしてください」というメッセージがユーザーに表示されるような、ある種の機能を用意したいと考えていました。適用して変更を保存します。」このために、MainWindow のマウス ダウン イベントに次のコードを書きました。
したがって、ロジックは次のとおりです。メイン ウィンドウのマウス ダウンで、ヒット オブジェクトを取得し、それがプロパティ パネル コントロールの子コントロールである場合は、親として PropertyPanelUserControl を持ち、一部または子コントロールではない他のコントロールを持つことを確認します。 PropertyPanelUserControl の場合、ユーザーは適用をクリックするように求められます。
上記のコードは見事に機能していました...しかし、私は奇妙な問題を見つけました.1から10までのエントリを持つコンボボックスがプロパティパネルにありました.そのため、ユーザーが値を他の値に変更しようとすると、ユーザーこれまでのところ、ユーザーがプロパティ パネル コントロールをクリックしていて、コンボ ボックスでアイテムを選択した後にマウス ダウン イベントでヒット オブジェクトをチェックすると、ヒット オブジェクトは chromeButton またはコンボ ボックスであったため、そのメッセージは表示されません。しかし、最後のアイテム10を選択すると、ヒットオブジェクトがプロパティパネルコントロールを持つ境界線として表示されます。
<Border><View:PropertyPanelControl/></Border>
上記のチェックは失敗します。境界線にはプロパティ パネル コントロールとして先祖がなく、むしろ境界線がコントロールの先祖であるためです。したがって、コンボボックスの値のみを変更している間でも、ユーザーはメッセージを受け取ります。さらに、外側ではなくコンボボックスの項目をクリックしていることを確認しました。したがって、wpf がこの奇妙な方法で動作している理由と対処方法について質問します。この問題。
c# - WPF 添付プロパティ コンテンツ コントロール
WPF アプリケーションでさまざまな uielements のコンテキスト ヘルプを提供する添付プロパティがあります。
添付プロパティは、状況依存のヘルプを提供するために使用されるポップアップ コントロールの Child プロパティである境界線コントロールの子プロパティに設定されます。
問題は、添付プロパティが添付されているUIEelmentに応じて、色の前景色がデフォルトでランダムになることです。
これは、コンテンツ プロパティがアタッチされたコントロールのビジュアル ツリーを使用しているためだと思います。
コンテンツ プロパティにフォアグラウンド、フォントなどのデフォルト プロパティを強制的に再評価させるにはどうすればよいですか?
これは、次の記事に基づいています: http://www.codeproject.com/Articles/59535/A-Simple-Integrated-WPF-Help-System
最終的に、修正が必要なのはおそらく私の派生ポップアップ クラスです。ポップアップを実装するより良い方法を探していましたが、まだ見つかりません。
すべての楽しいコードは以下にあります。popup クラスから始めます。
ご協力ありがとうございます。
添付プロパティは次のように定義されています。
ヘルプ ウィンドウ クラスは、個々のヘルプ項目を管理します。