コード例 #1
0
        /// <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();
        }
コード例 #2
0
        /// <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();
        }