問題タブ [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 に答える
1940 参照

wpf - wpfで選択したコントロールの長方形の境界

一連のコントロールをカバーするために必要な長方形(面積と場所)を見つける簡単な方法はありますか?VisualTreeHelper.GetDescandentBounds()は正常に機能しますが、境界の長方形を見つけるために考慮する必要のあるコントロールを指定できるオーバーロードされたメソッドはありません。どんな簡単な解決策でも大歓迎です。

ありがとう

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

silverlight - ListBox 項目の取得 Silverlight

VisualTreeHelper クラスを使用してリストボックス項目を取得しようとしました。VisualTreeHelper.GetChildrenCount((DependencyProperty)listBox1) を実行すると、count が 0 として返されます。

よろしく、ラリス

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

wpf - WPF TabControl SelectedItem が変更されたときに新しいビジュアル ツリーにアクセスする方法

選択されたタブがインデックス 1 (中央のタブ) である、3 つのタブを持つ既に読み込まれてレンダリングされた TabControl を検討します。

タブ 1: TextBox が 1 つある

タブ 2: 2 つの TextBox がある

タブ 3: 3 つの TextBox がある

VisualTreeHelper を使用して selectedItem のビジュアル ツリーを反復処理すると、TabControl の子内に 2 つの textBoxes が取得されます。

タブの選択が変更されたときにもう一度繰り返し、新しいタブのコントロールにアクセスしたい。タブ インデックス 2 に切り替えると、VisualTreeHelper を使用して 3 つのテキスト ボックスを見つける必要があります。

通常の解決策は、selection changed イベントをサブスクライブし、ツリーを調べて新しく表示されたコントロールを取得することです。問題は、現時点ではビジュアル ツリーに古いタブが残っているため、この検索の価値がないことです。

新しい TabItem が表示され、検索をトリガーする瞬間を傍受するにはどうすればよいですか?

ContentControl テンプレートの変更または TabControl で選択されたタブの変更によって変更された場合でも、特定の UI のすべての入力コントロールを監視する動的検証エンジンを作成しています...画像が得られることを願っています。

何か案は?

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

wpf - WPFリボンコンボボックスの高さ

わかりました。これは簡単な質問だと思いましたが、どうやら混乱してしまいました。

RibbonComboBoxの高さを設定しようとすると、実際のサイズではなく、周囲のボックスだけが移動します。

代替テキスト

これが私のXAMLです。

高さを200または1に変更できますが、高さが変更されることはありません。

私は何が間違っているのですか?

ありがとう、Eroc

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

wpf - VisualTreeHelperを使用するものをユニットテストするにはどうすればよいですか?

私はこの静的ヘルパー関数を持っています:

それは実際のアプリケーションで動作しますが、私はそれのためにいくつかの単体テストを書こうとしています。これが私の最初の試みです:

VisualTreeHelper残念ながら、はnullを返すため、失敗します。動作するビジュアルツリーをモックアップするにはどうすればよいですか?

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

c# - ListView 内のすべての TextBoxes を検証する別の方法があるかどうかに興味があります

これが私が持っているものです....示されているのはListViewの一部です。現在起こっていることは次のとおりです。ユーザーが [新規] ボタンをクリックして、新しい行を作成します。ユーザーは、[保存] ボタンをクリックする前に、含まれている TextBoxes/Comboboxes に情報を入力する場合と入力しない場合があります。[保存] ボタンをクリックすると、以下の C# コードが実行され、VisualTreeHelper を使用して ListView 内のすべての TextBoxes/ComboBoxes が検索され、ユーザーがテキストを入力したか項目を選択したかが確認されます。そうでない場合は、BorderBrush を赤に設定し、ObjectContext が変更を保存できないようにします。場合によっては ValidationRule を使用できることは知っていますが、[保存] ボタンをクリックする前に選択/変更されたことのない新しい行を検証する方法がわかりませんでした。これは機能しますが、もっとエレガントな方法があるかどうか興味がありました。

XAML

C#

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

silverlight - ランドスケープでのVisualTreeHelperヒットテストの問題

ユーザーが画面上で指をスワイプするときに、FindElementsInHostCoordinatesメソッドを使用して要素を検索しています。電話が縦向きだった場合に反応していることに気づいています。例-指を上に動かすと下に移動し、指を右に動かすと左に移動します。また、私が電話の下半分にいる場合にのみ何かを行います。ですから、横向きで打っている座標を見つけたら、縦向きのように振る舞うと思います。なぜこれが起こっているのか誰かが知っていますか?

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

wpf - WPF 3.5 のネストされたデータグリッド行の詳細がビジュアル ツリーに表示されない

そこで、次のような素敵なネストされたデータグリッドを構築します。

RowDetailsVisibilityMode プロパティが VisibleWhenSelected に設定されているため、行のノード DataGridDetailsPresenter には子がありません。プロパティが Visible に設定されている場合、DataGridDetailsPresenter の子が表示されます。

RowDetailsVisibilityMode プロパティが VisibleWhenSelected の場合、Visual ツリーにすべてのノードを強制的に含めるにはどうすればよいですか?

どんな入力でも大歓迎です。

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

.net - FrameworkElement.Parent と VisualtreeHelper.GetParent の動作が異なります

WP7 アプリでは、FrameworkElement.Parent を再帰的に使用して、特定の要素が別の要素の中にあるかどうかを判断しました。しかし、常に正しく機能するとは限りません。次に、VisualtreeHelper.GetParent メソッドを再帰的に使用するようにコードを変更しましたが、(テストした限りでは) 常に正しく動作します。

それで、それらの違いは何ですか?

ありがとう

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

c# - Silverlight 4 - ビジュアル ツリー ヘルパーは 0 の子要素を返しますか?

何かの中の要素を見つけることになっている次のコードがあります。問題は、最初の列のヘッダーに CheckBox がある DataGrid があることです。チェックボックス自体は<controls:ChildWindow.Resources>、親子ウィンドウのディクショナリに存在するスタイルで定義されています。

実行時に、グリッドのバインディング コレクションのすべての要素が「選択」されている場合は、いまいましいチェックボックスを選択する必要があります。ただし、チェックボックスはスタイルに存在するため、簡単にアクセスできないため、DOM 全体を調べて特定のチェックボックスを見つける必要があります。

これは、DOM Traversal を作成するコードです。これは FrameworkElement の拡張メソッドとして実装されているため、から継承する任意のコントロールから FindElement または GetChildren メソッドを呼び出すことができますFrameworkElement

したがって、目前の問題は、その行に沿って何かを呼び出すと、SomeDataGrid.FindElement("HeaderCheckBox");常にnullが返されることです。ここでの前提は、SomeDataGrid という DataGrid と、HeaderCheckBox というスタイル内で定義された CheckBox があることです。

さらにデバッグすると、これらの拡張メソッドをどのコントロールから呼び出してもVisualTreeHelper.GetChildrenCount、コードの最後の 2 つのメソッドで使用されるメソッド呼び出しは常に 0 を返すこともわかりました。なんてこと?

誰でもこれを修正する方法について何か考えがありますか? ありがとう、マーティン