Intervalos múltiples portapapeles (7 / 9 paso)

Paso 7: Repetir la interfaz de usuario

Hasta ahora hemos creado algunos campos para almacenar los datos y métodos para

inicializar la estructura de datos y obtener el texto seleccionado. Ahora debemos crear dinámicamente la interfaz de usuario para mostrar cinco juegos de la red de la plantilla.

Tenemos que guardar las cinco rejillas en una matriz de esta forma podemos acceder a la red utilizando un índice dentro de los eventos del control. Para almacenar las rejillas creadas de forma dinámica que necesitamos crear la matriz de aGroupGrids como campo privado de la clase MyControl. El tipo de datos de esta matriz es Grid (System.Windows.Controls.Grid) y número máximo de elementos es almacenado en la MAX_SLOTS constante.

privada red [] aGroupGrids = nueva rejilla [MAX_SLOTS];

Antes que inicializar el array de redes tenemos que crear un método para clonar la grdTemplate red existente que se creó en el paso 3. Desafortunadamente, .NET framework no tiene un función clonar un control de interfaz de usuario, así que tenemos que crear nuestra propia. Por lo tanto, debemos crear el método CloneControls() como se muestra a continuación.

CloneControls(Grid myGrid) red privada

{

String gridXaml = XamlWriter.Save(myGrid);

StringReader stringReader = nuevo StringReader(gridXaml);

XmlReader xmlReader = XmlReader.Create(stringReader);

Red newGrid = (Grid)XamlReader.Load(xmlReader);

volver newGrid;

}

El método CloneControls() recibe un objeto de cuadrícula como parámetro y devuelve otro objeto de cuadrícula, que es un clon del parámetro. Dentro de este método, utilizamos las clases que serializar objetos en el formato XML para obtener todas las propiedades, valores y otros elementos almacenados dentro del control. El siguiente enlace contiene una buena explicación acerca de la serialización XML con las clases XamlWriter y XMlReader en el .NET Framework 4.0.

http://blogs.msdn.com/b/bursteg/Archive/2009/05/18/XAML-in-net-4-0-Serialization-and-deserialization-Using-XamlServices.aspx

Ahora que tenemos la matriz de aGroupGrids para almacenar los controles creados dinámicos y el método CloneControls() para clonar los objetos de red que tenemos que inicializar los elementos, es decir, crearlas. Lo haremos dentro de un nuevo método llamado InitializeInteface(). Este método debería llamarse dentro de constructor de MyControl justo después de la llamada InitializeClipboard(). El constructor de la clase MyControl debería parecerse a esto:

MyControl() pública

{

InitializeComponent();

Añadir las ranuras vacías

IntilializeClipBoard();

Initilizae la interfaz

InitializeInterface();

}

Dentro de la InitializeInterface() que debemos hacer las siguientes tareas:

· Ocultar grdTemplateGrid;

· Para cada nuevo clon de la ranura para la red grdTemplateGrid:

o introduzca la nueva cuadrícula de clonado en la matriz aGroupGrid.

o establece la visibilidad de la nueva cuadrícula de clonado.

o establece la posición de la tabla clonada en un nuevo margen para que las rejillas no se superponen visualmente.

o cambiar el caption de la etiqueta para mostrar qué cuadrícula corresponden a cada ranura.

o establezca la propiedad etiqueta de los controles y el ListView para almacenar el índice de la rejilla clonado.

o establezca al delegado de métodos en los eventos click de los botones. Asimismo, establece el método de delegado al evento doble click del ListView.

o añadir la nueva red clonada para el contenedor rejilla grdMain.

A continuación se muestra el código completo del método InitializeInterface():

privado InitializeInterface() vacío

{

Left_initial doble = -170;

this.grdTemplate.Visibility = Visibility.Hidden;

para (int i = 0; i < MAX_SLOTS; i ++)

{

aGroupGrids [i] = CloneControls(this.grdTemplate);

aGroupGrids [i]. Visibilidad = Visibility.Visible;

left_initial = left_initial + 180.0;

aGroupGrids [i]. Margen = new System.Windows.Thickness (left_initial,-5.0, 0.0, 0.0);

Necesario cambiar la etiqueta de ranura + añadir los eventos a los botones y la lista

Orden de elementos

0 -> botón pegar

1 -> botón copiar

2 -> ListView

3 -> etiqueta

4 -> botón cortar

aGroupGrids [i]. Etiqueta = i;

Establece el título de la etiqueta

(AGroupGrids (etiqueta) [i]. Children[3]). Content = "Slot" + (i + 1). ToString();

Establecer las propiedades de etiquetas con el índice de esta cuadrícula de la matriz

Esto va a ser útil este último en (para eventos)

Botón pegar = (aGroupGrids (botón) [i]. Children[0]);

Botón copia = (aGroupGrids (botón) [i]. Children[1]);

Botón de corte = (aGroupGrids (botón) [i]. Children[4]);

ListView lstData = (aGroupGrids (ListView) [i]. Children[2]);

Paste.Tag = i;

Copy.Tag = i;

Cut.Tag = i;

lstData.Tag = i;

Establecer los eventos de botones (clic)

Copy.Click += Copy_Click;

Paste.Click += Paste_Click;

Cut.Click += Cut_Click;

Establecer el evento ListView (MouseDoubleClick)

lstData.MouseDoubleClick += lstData_MouseDoubleClick;

Agregar esta red principal red

grdMain.Children.Add(aGroupGrids[i]);

}

}

Cómo todo lo que tenemos que hacer es rellenar los métodos de delegado para los botones (Copy_Click, Pastle_Click, Cut_Click) y el método para el doble clic en el control ListView (lstData_MouseDoubleClick), que mostrará un simple MessageBox con el contenido del elemento seleccionado.

Artículos Relacionados

Control remoto de múltiples funciones DSLR

Control remoto de múltiples funciones DSLR

Muchas cámaras DSLR pueden ser controladas remotamente usando un transmisor de infrarrojos.Generalmente son del tamaño de un llavero, cuestan entre US$ 8 (para una copia China barata) a US$ 25 (original) y permitir una prensa solo botón que activa el
Construir su propio controlador de cámara inalámbrica de múltiples funciones (¡ barato!).

Construir su propio controlador de cámara inalámbrica de múltiples funciones (¡ barato!).

Introduction¿Siempre creyó su propio controlador de cámara de la construcción?Nota importante: Condensadores para la MAX619 son 470n o 0.47u.  El esquema es correcto, pero la lista de componentes era incorrecto - actualizado.Es una entrada en el conc
Realizar IoT elegante dispositivo con SSR múltiple

Realizar IoT elegante dispositivo con SSR múltiple

Ustedes realmente no es ajeno a control AC (corriente alterna, no aire acondicionado) con el uso del sistema basado en microcontrolador. En los anteriores posts en el blog, hubo varias iteraciones de arduino sous vide; control de un SSR (rele de esta
Parpadean Leds múltiples a diferentes velocidades, 1 función, No demora

Parpadean Leds múltiples a diferentes velocidades, 1 función, No demora

En este Instructables iremos paso a paso desde el boceto de BlinkWithoutDelay estándar a una sola función que podemos recordar para cada LED que tenemos.Obligatorio:Placa ArduinoInstalado el IDE de Arduinopor lo menos 2 Leds2 resistencias de limitaci
Básico Modular múltiples marcos para bicicletas de carga - corte del laser hermético apilable cajas

Básico Modular múltiples marcos para bicicletas de carga - corte del laser hermético apilable cajas

Los marcos múltiples básicos para bicicletas de carga es el primer bloque de edificio en nuestra plataforma de código abierto Vélo M², un ecosistema donde ofrecemos la electricidad solar y energía del pedal y los planes de construir módulos a su imag
4 maneras de hacer superficies múltiples LED Throwies - Taggies

4 maneras de hacer superficies múltiples LED Throwies - Taggies

Hola todo el mundo,hoy que estoy publicando mi Instructable 20 y video de YouTube! Para ello, así que decidí rodar 4 Mini proyectos en uno y espero que te guste.La inspiración para este vino de proyecto de la llamada "throwies" que son básicamen
Cómo encontrar el área en un intervalo utilizando integrales.

Cómo encontrar el área en un intervalo utilizando integrales.

En esta instuctable, podrá aprender cómo encontrar el área bajo la curva usando integrales.Paso 1: materialesPapelLápizCalculadoraEcuación deIntervalo dePaso 2: Conocer la forma estándar para integrales.La forma estándar para integrales está en el cu
Portapapeles de smartphone

Portapapeles de smartphone

Smartphones son fantásticos para muchos usos además de es uso principal como un teléfono. Como estudiante en una conferencia, casi sin espacio para su teléfono, este portapapeles funciona fantástico! Con todas las aplicaciones disponibles, el Portapa
Portapapeles comunicación PC ↔ Pi con Python

Portapapeles comunicación PC ↔ Pi con Python

Yo normalmente uso mi frambuesa Pi en un escritorio compartido de windows. Comparto también una unidad de red con el Pi. Esto es genial, pero sigo teniendo la molestia del portapapeles en el PC no se refleja en la Pi. Puede haber aplicaciones de plat
Frambuesa PiSONE múltiples centro de entretenimiento

Frambuesa PiSONE múltiples centro de entretenimiento

tras el éxito de mi primer Instructible aquí es mi segunda! Es no 1 millón millas lejos de la máquina de arcade que he construido pero el arcade de la máquina es sólo una máquina de un jugador y sólo una tiene pantalla pequeña de una persona.Así que
Centro de Control de cohetes múltiples

Centro de Control de cohetes múltiples

como un líder de Boy Scout de mucho tiempo he encontrado un recurso inestimable. Así que aquí está mi primer intento de ayudar a la comunidad con mi primer instrucable.Esta idea nace de una frustración del año pasado. Era un maestro Scout en un curso
Múltiples entradas analógicas usando un perno de analoge

Múltiples entradas analógicas usando un perno de analoge

¡ Hola!En este instructible voy a explicar cómo leer valores de más de un sensor mediante el uso de solamente una clavija de entrada analógica.Te preguntarás por qué desea esto.Cuando se utiliza un tablero de Nodemcu, como se muestra en la imagen, un
Láser personalizado grabado portapapeles

Láser personalizado grabado portapapeles

En este Instructable, te mostraré cómo configurar un archivo de un logotipo en el material - en este caso, un portapapeles de grabado del laser personalizado!Paso 1: Mida su materialLo primero que hago al iniciar un proyecto es medir mi material. Uti
Pulsera de cuentas de cómo hacer un trenzado múltiple étnicas para el verano

Pulsera de cuentas de cómo hacer un trenzado múltiple étnicas para el verano

Hace ya tiempo pandahall diy equipo había actualizado a la última pulsera de cuentas étnica. Hoy que os traemos un nuevo estilo tibetano con cuentas de diseño de pulsera.Paso 1: Materiales en la fabricación de las pulseras abalorios étnicos trenzadas