コントロールがプロパティを介して公開されていないときに可能ですか?コントロールのリストを返すことができるWPF UserControlの拡張メソッドを作成できますか?
1
A
答えて
2
コントロールがUserControl
のVisual Tree
の一部である場合は、そのコントロールのすべてのビジュアル子をリストできます。そして、そのロジックを拡張メソッドでラップすることができます。
VisualTreeHelper
クラスを使用できます。
2
このachiveが容易である:(this SO questionからコード)
public static IEnumerable<T> FindVisualChildren<T>(DependencyObject depObj) where T : DependencyObject
{
if (depObj != null)
{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++)
{
DependencyObject child = VisualTreeHelper.GetChild(depObj, i);
if (child != null && child is T)
{
yield return (T)child;
}
foreach (T childOfChild in FindVisualChildren<T>(child))
{
yield return childOfChild;
}
}
}
}
関連する問題
- 1. コントロールのWPFのICommand動作を拡張できますか?
- 2. 拡張コントロールから拡張型インスタンスを返すメソッド
- 3. 拡張可能リストAlertDialogを作成できますか?
- 4. VS Intellisense:拡張メソッドを隠すことはできますか?
- 5. dut_error()メソッドを拡張できますか?
- 6. プロトコル専用のクラス拡張を作成することはできますか?
- 7. WPFがUserControlの子コントロールからフォーカスを移動できない
- 8. 私の拡張メソッドを動作させることができません(C#)
- 9. 独自のメソッドでUIAElementArrayを拡張することはできますか?
- 10. TypeScriptでクラスの拡張メソッドを作成することは可能ですか?
- 11. 後でプラグインと拡張機能をダウンロードできるIOSアプリを作成することはできますか?
- 12. Consoleの拡張メソッドを記述することはできますか?
- 13. @SuppressWarningsを拡張するJavaアノテーションを作成できますか?
- 14. WPFでスタイルを拡張するのと同じ方法でControlTemplateを拡張できますか?
- 15. ジェネリック拡張メソッドを作成するときに何を拡張していますか?
- 16. AsyncTaskを拡張するクラスを含むメソッドから値を返すことができません
- 17. UserControl WPFを拡張するカスタムコントロール内のTextChangedまたはContentChangedイベント
- 18. モジュールをインクルード/拡張することはできますが、すべてのインクルード/拡張メソッドをプライベートとしてマークできますか?
- 19. IronPythonでLINQタイプと拡張メソッドを使用できますか?
- 20. 言語固有の拡張コマンドを作成できますか?
- 21. UIView拡張からメソッドを呼び出すことができません
- 22. 拡張メソッドは汎用パラメータを持つことができますか?
- 23. AndroidでCanvasを拡張することはできますか?
- 24. リストを作成するときにコントローラからのビューを返すことができません
- 25. HwndHostコントロールでWPFコントロールを描画することはできますか?
- 26. Symfony2でFOSを拡張することができません
- 27. マークアップタグをWPFのusercontrolに伝播することはできますか?
- 28. jax-rsで@Contextアノテーション作業スコープを拡張することができます
- 29. C#メソッドがメソッドを返すことはできますか?
- 30. WPF UserControlはどのようにしてWPF UserControlを継承できますか?