Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

há 8 meses
1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using System.Collections.Generic;
  2. using System.Windows;
  3. using System.Windows.Controls;
  4. using System.Windows.Media;
  5. namespace DamnOverSharp.Helpers
  6. {
  7. public static class WPF_VisualHelper
  8. {
  9. public static List<FrameworkElement> GetAllChildren(FrameworkElement parent)
  10. {
  11. List<FrameworkElement> result = new List<FrameworkElement>();
  12. for (int i = 0; i < VisualTreeHelper.GetChildrenCount(parent); i++)
  13. {
  14. DependencyObject child = VisualTreeHelper.GetChild(parent, i);
  15. if (child is UserControl)
  16. {
  17. result.Add((UserControl)child);
  18. if((child as UserControl).Content is FrameworkElement)
  19. {
  20. result.AddRange(GetAllChildren((child as UserControl).Content as FrameworkElement));
  21. }
  22. }
  23. else if (child is FrameworkElement)
  24. {
  25. result.Add(child as FrameworkElement);
  26. result.AddRange(GetAllChildren(child as FrameworkElement));
  27. }
  28. }
  29. return result;
  30. }
  31. public static Rect GetVisualRect(FrameworkElement element, FrameworkElement parent)
  32. {
  33. return element.TransformToVisual(parent).TransformBounds(new Rect(element.RenderSize));
  34. }
  35. }
  36. }