問題タブ [visual-tree]
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# - wp7のビジュアルツリーで要素を見つける方法は?
ビジュアルツリーで要素を見つける必要があります。たとえば、グリッドがあり、ExpanderView が展開するときに tbox:WatermarkTextBox に独自のテキストを設定する必要があります。xaml
c#
wpf - DataGrid にその列の VisualTree を再構築させる方法
DataGrid を使用した WPF フォームがあります。ボタンを使用して、ユーザーが手動で新しい列をデータグリッドに追加できます。これは、新しい列を追加するコードです。
問題は、列をグリッドに追加した後、そのヘッダーがまだ生成されておらず、ビジュアル ツリーに存在しないことです。したがって、新しい列のヘッダーを取得して、それに装飾を適用することはできません。グリッドのビジュアル ツリーで ApplyTemplate を再帰的に呼び出そうとしましたが、うまくいきませんでした。
コードで新しい列の DataGridColumnHeader を生成するようにグリッドを強制する方法はありますか?
前もって感謝します。
wpf - ビジュアル ツリーを反復せずに、テンプレート列の入れ子になったコントロールから DataGridCell を取得する
DataGridCell は、コントロールの VisualTree に表示されません。
グリッド内のスタック パネルに Rectangle と Label を含む DataGridTemplateColumn があります。
親要素がnullになるPreviewMouseLeftButtonDown
まで、イベントがビジュアルツリーを上向きに反復するようにしたかったのです。DataGridCell
Grid
以下のリンクを読むと、DataGrid のビジュアル ツリーで、UIControls が の content プロパティとして設定されているようDataGridCell
です。では、Rectangle から DataGridCell を取得するにはどうすればよいでしょうか。
http://blogs.msdn.com/b/vinsibal/archive/2008/08/14/wpf-datagrid-dissecting-the-visual-layout.aspx
c# - Prism でビジュアル ツリーの作成を強制する
含まれているTabControl
Prism 領域があります。特定のイベントに対して何らかの通知 (タブ ヘッダーの点滅など) をトリガーしたいのですが、Prism 領域のコンポーネントからこの通知をトリガーしたいと考えています。
このようなコンポーネントを含むタブが一度開かれると、これを使用VisualTreeUtil.GetParent()
してうまく機能し、それを見つけてTabControl
通知を示すように変更できるようになります。
VisualTreeUtil.GetParent()
しかし問題は、 null を返すため、ユーザーがタブを開くまでこれが機能しないことです。明らかに、Prism はそれまでビジュアル ツリーを接続しないためです。
領域を含む を呼び出しUpdateLayout()
てTabItem
も役に立ちません。ユーザーを混乱させるため、TabItems をプログラムで開きたくありません。
ある種の地域レジストリを実装する以外にできることはありますか (これはかなり醜く、維持するのが難しいでしょう)?
コードを見たい場合は、問題を示すための最小限の解決策を書きました。[構造を印刷] ボタンは、2 番目のタブの (最初はレンダリングされていない非表示の) hello TextBlockからビジュアル ツリーを上に移動しようとします。タブに切り替える前に、TextBlock のみを出力します。その後、ビジュアル ツリーのルートに到達します。これは、タブに切り替えずに達成したいことです。
.net - ビジュアルツリーを歩くのは悪い習慣ですか?
最近、ビジュアル ツリーをたどることが悪い習慣であるというコメントをいくつか見ましたが (ここでは、たとえば)、これが悪い習慣である理由を見たり見つけたりしていません。
私が取り組んでいるプロジェクトでは、かなりのツリー ウォーキングがあるので、わざわざこれをすべて別のものに変更するか、そのままにしておくかを考えています。
したがって、ここでの私の主な質問は、ビジュアル ツリー ウォーキングが本当に悪い習慣であるかどうか、さらに重要なことに、そうである場合、なぜでしょうか?
また、視覚的なツリーをどこで (あるとしたら?) 歩けばよいでしょうか?
wpf - Caliburn.Microメッセージバブリングがコントロールをスキップする
階層コレクションがあり、サイズが大きいため、最下位レベルを遅延ロードします。
私がアクティブにしようとしているアクションはCollectionHolderManagerにありますが、バブリングが何らかの理由でそのビジュアルレイヤーをスキップしているようです。
したがって、TopLevelCollectionにアクションがある場合、それが呼び出されます。
CollectionHolderManagerを所有するViewModelにある場合は呼び出されますが、CollectionHodlerManager自体にある場合は呼び出されません。なぜそれをスキップするのですか?
wpf - WPF印刷の大規模なカスタムコントロール
重複している場合は申し訳ありませんが、関連するものは見つかりませんでした。
持っているカスタムコントロールからXpsDocumentを作成しようとしています。カスタムコントロールは、本文に加えて、ヘッダーとフッターのプロパティをすでに定義しています。
アイデアは、同じコントロール(またはその派生物)をカスタムDocumentPaginatorへの入力として使用できるようにすることです。このコントロールは、すべてのページにヘッダーとフッターを配置して、その「レポート」のプリンター対応バージョンを作成します。本体内のコントロールが完全に表示されます(コントロール全体のビットマップを作成してから、拡大縮小してページの終わりにカットしたくありません)。
ユーザーコントロールのコンテンツをページに分割する方法についてのアイデアはありますか?または、コントロールをページに印刷するための別の方法に関する提案はありますか?
よろしくお願いします
c# - VisualTreeHelper.GetChildrenCount()がポップアップに対して0を返すのはなぜですか?
私はそのオープニングでポップアップに焦点を移します:
FocusHelperクラスコード:
ElementTreeHelperクラスパート:
問題は、親がポップアップの場合、var count = VisualTreeHelper.GetChildrenCount(parent)==0であるということです。
アップデート
答えはここにあります
c# - 現在のピボットページの視覚要素
私はC#、Silverlight、Visual Studio for WindowsPhone7を使用しています。
ピボット中に画面に現在表示されている視覚要素のみを取得することに興味があります。たとえば、ピボットに5つのPivotItemを含めることができますが、各フリックの後に表示されているアイテムのみを取得したいと思います。
現在、ビジュアルツリーからピボット全体を取得でき、明らかに特定のピボットアイテムを選択できます。ただし、画面上の現在のピボットのみを取得できるようにしたいと思います。最終的な目標は、現在のPivotItemに関係なく、画面上の要素の絶対位置を取得することです。
これは可能ですか?もしそうなら、どのように?
wpf - 親が成功したときに子要素を別の要素にバインドすると、バインドが失敗するのはなぜですか?
3番目のUIオブジェクト(この例ではボタン)を参照できる2つのクラスがあるとします。
さらに、親クラスには子クラスの要素を含めることができます。
両方が同じコントロールにバインドされている場合、同じ方法で、子は失敗しますが、親は成功します。
これはWPFのバグですか?
親 :
そして子供:
わかった -
次に、次のようにXAMLに追加するとします。
まったく同じ表記を使用しているのに、バインディングが親で機能するのに子で失敗するのはなぜですか?
これが私のテストコードです...
そして、これがテスト結果です...
親ボタンの参照はSystem.Windows.Controls.Buttonです。
子ボタンの参照はnullです!