1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| private Panel ChartArea
{
get
{
if (chartArea == null)
{
chartArea = GetLogicalChildrenBreadthFirst(graphgeneral).Where(element => element.Name.Equals("ChartArea")).FirstOrDefault() as Panel;
}
return chartArea;
}
}
private ScrollViewer ScrollArea
{
get
{
if (scrollArea == null)
{
scrollArea = GetLogicalChildrenBreadthFirst(graphgeneral).Where(element => element.Name.Equals("ScrollArea")).FirstOrDefault() as ScrollViewer;
}
return scrollArea;
}
}
private IEnumerable<FrameworkElement> GetLogicalChildrenBreadthFirst(FrameworkElement parent)
{
Debug.Assert(parent != null, "The parent cannot be null.");
Queue<FrameworkElement> queue =
new Queue<FrameworkElement>(GetVisualChildren(parent).OfType<FrameworkElement>());
while (queue.Count > 0)
{
FrameworkElement element = queue.Dequeue();
yield return element;
foreach (FrameworkElement visualChild in GetVisualChildren(element).OfType<FrameworkElement>())
{
queue.Enqueue(visualChild);
}
}
}
private IEnumerable<DependencyObject> GetVisualChildren(DependencyObject parent)
{
Debug.Assert(parent != null, "The parent cannot be null.");
int childCount = VisualTreeHelper.GetChildrenCount(parent);
for (int counter = 0; counter < childCount; counter++)
{
yield return VisualTreeHelper.GetChild(parent, counter);
}
}
private void nombre_MouseWheel(object sender, MouseWheelEventArgs e)
{
Debug.Assert(ChartArea != null && ScrollArea != null, "Zoom should not be called before layout has occurred");
double test = chartArea.Width;
chartArea.Width = chartArea.Height = test + e.Delta;
} |