/// <summary> /// Construye el canvas del formulario de menu y agrega los eventos del mouse /// </summary> public void MakeCanvas() { Canvas formCanvas = Utilities.CanvasFromXaml(this.canvasPath); // Alarga el formulario de menu, usando 30 como alto. formCanvas.Height += MenuItems.Count * 30; formCanvas.PreviewMouseDown += new MouseButtonEventHandler(formCanvas_PreviewMouseDown); formCanvas.PreviewMouseUp += new MouseButtonEventHandler(formCanvas_PreviewMouseUp); ConnectionPointWpf inputConnectionPoint = this.InputConnectionPoint as ConnectionPointWpf; // Cargar el canvas desde el punto de conexión. inputConnectionPoint.MakeCanvas(); // Agrega los eventos al punto de conexión inputConnectionPoint.Click += new EventHandler(ConnectionPoint_Click); // Agrega los items del menu al canvas int i = 1; foreach (FormMenuItemWpf item in this.MenuItems) { item.Width = formCanvas.Width; item.Height = 30;// formCanvas.Height; item.MakeCanvas(); // Agrega los eventos. if (!item.ConnectionClickAttached) { item.ConnectionClickAttached = true; item.ConnectionClick += new EventHandler(ConnectionPoint_Click); } Canvas itemCanvas = (item as FormMenuItemWpf).MyCanvas; formCanvas.Children.Add(itemCanvas); Canvas.SetTop(itemCanvas, i * item.Height); i++; } // Compone el grupo de canvas Canvas groupFormCanvas = new Canvas(); groupFormCanvas.Background = Brushes.Transparent; groupFormCanvas.Width = formCanvas.Width + (inputConnectionPoint.MyCanvas.Width * 2); groupFormCanvas.Height = formCanvas.Height; groupFormCanvas.MouseUp += new MouseButtonEventHandler(groupFormCanvas_MouseUp); groupFormCanvas.Children.Add(formCanvas); Canvas.SetLeft(formCanvas, inputConnectionPoint.MyCanvas.Width); groupFormCanvas.Children.Add(inputConnectionPoint.MyCanvas); GenerateContextMenu(groupFormCanvas); this.MyCanvas = groupFormCanvas; ChangeTitle(); }
/// <summary> /// Hace el lienzo del formulario de lista WPF y adjunta eventos del mouse /// </summary> public void MakeCanvas() { Canvas formCanvas = Utilities.CanvasFromXaml(this.canvasPath); formCanvas.PreviewMouseDown += new MouseButtonEventHandler(formCanvas_PreviewMouseDown); formCanvas.PreviewMouseUp += new MouseButtonEventHandler(formCanvas_PreviewMouseUp); ConnectionPointWpf inputConnectionPoint = this.InputConnectionPoint as ConnectionPointWpf; ConnectionPointWpf outputConnectionPoint = this.OutputConnectionPoint as ConnectionPointWpf; // Carga el lienzo desde los puntos de conexión. inputConnectionPoint.MakeCanvas(); outputConnectionPoint.MakeCanvas(); // Adjunta eventos a los puntos de conexión. inputConnectionPoint.Click += new EventHandler(ConnectionPoint_Click); outputConnectionPoint.Click += new EventHandler(ConnectionPoint_Click); // Compone el grupo de lienzos. Canvas groupFormCanvas = new Canvas(); groupFormCanvas.Background = Brushes.Transparent; groupFormCanvas.Width = formCanvas.Width + (inputConnectionPoint.MyCanvas.Width * 2); groupFormCanvas.Height = formCanvas.Height; groupFormCanvas.MouseUp += new MouseButtonEventHandler(groupFormCanvas_MouseUp); groupFormCanvas.Children.Add(formCanvas); Canvas.SetLeft(formCanvas, inputConnectionPoint.MyCanvas.Width); groupFormCanvas.Children.Add(inputConnectionPoint.MyCanvas); groupFormCanvas.Children.Add(outputConnectionPoint.MyCanvas); // Establece la posición del ConnectionPoint. outputConnectionPoint.XCoordinateRelativeToParent = groupFormCanvas.Width - outputConnectionPoint.MyCanvas.Width; outputConnectionPoint.YCoordinateRelativeToParent = groupFormCanvas.Height - outputConnectionPoint.MyCanvas.Height; Canvas.SetLeft(outputConnectionPoint.MyCanvas, outputConnectionPoint.XCoordinateRelativeToParent); Canvas.SetTop(outputConnectionPoint.MyCanvas, outputConnectionPoint.YCoordinateRelativeToParent); GenerateContextMenu(groupFormCanvas); this.MyCanvas = groupFormCanvas; ChangeTitle(); }