Tengo un control de pestañas, y cuando el usuario quiera agregarlo, entonces quiero copiar un par de elementos que ya existen (no solo hacer referencia a ellos). Ahora, hasta ahora, he copiado las variables que quiero. Pero en el código de dimensionamiento automático he llegado a ser un recortador, es decir, el elemento copiado se retrasa notablemente detrás del original al cambiar el tamaño de la ventana. Además, no es factible seguir copiando cada elemento que necesito copiar a medida que esa lista crece. ¿Hay algún método que pueda usar que copie un control WPF? En este momento, eso es solo un cuadro de texto y un elemento de tabulación.Copie un control WPF programáticamente
Respuesta
Es posible que no entienda bien su pregunta, pero podría crear un UserControl personalizado, y cada vez que necesite agregar un nuevo control, simplemente cree una nueva instancia de ese control y agréguelo a su escena, de esta manera usted puede utilizar DataContext
's para ayudar con el enlace de datos que se puede utilizar desde el mando a su copia:
MyControl newControl = new MyControl { DataContext = controlToCopy.DataContext };
myGrid.Children.Add(newControl);
o similares ...
o usted necesita que sea más dinámico que eso?
yo no puedo decirle qué es lo que estamos tratando de hacer, pero si quieres una nueva instancia idéntica a una instancia de control existente puede utilizar XamlWriter y XamlReader para serializar/deserializar el control:
MyControl copy = XamlReader.Parse(XamlWriter.Save(controlInstance)) as MyControl;
Esta es una buena solución, pero requerirá mucha personalización (en caso de que utilice atributos vinculantes, StaticResources, X: Name etc.- Por lo tanto, debe ocuparse de los problemas mencionados en estos artículos Limitaciones de serialización de XamlWriter.Save [ http://msdn.microsoft.com/en-us/library/ms754193.aspx] Escrito por XamlWriter [ http://blogs.msdn.com/b/mikehillberg/archive/2006/09/16 /xamlwriter.aspx] – akjoshi
esos enlaces están muertos :( – JobaDiniz
- 1. WPF invocar un control
- 2. Desvanecimiento WPF en un control
- 3. WPF Cinta colapsar y expandir programáticamente
- 4. WPF ListView Seleccionar programáticamente elemento
- 5. WPF Custom Control - ¿Cómo prueba un control personalizado?
- 6. WPF schedule control
- 7. WPF Custom Control TemplateBinding
- 8. control WPF tirón
- 9. Arrastre WPF Popup control
- 10. Puntero WPF control
- 11. WPF herencia de control
- 12. ¿Administrando cookies en un control WPF WebBrowser?
- 13. WPF Recorte de un control secundario
- 14. ¿Hay un control de asistente en WPF?
- 15. Haciendo un control móvil en WPF
- 16. ¿Forzar un control WPF para actualizar?
- 17. Usando un control WPF personalizado en WinForms
- 18. ¿Hay un buen control de pivote WPF?
- 19. Resalta un control WPF cuando se enfoca
- 20. Ejecutar un control WPF en otro hilo
- 21. Diseñando un control de mapa WPF
- 22. Desde WPF Control a Silverlight Control
- 23. Evento de control de desencadenamiento programáticamente
- 24. Copie texto de WPF DataGrid en Portapapeles en Excel
- 25. ¿Agregar programáticamente una etiqueta span, no un control Label?
- 26. ¿Cómo puedo desplazarme programáticamente un control winform datagridview?
- 27. ¿cómo podemos cambiar el zindex de un control Silverlight programáticamente?
- 28. adición de control de usuario/Página de ventanas XAML en WPF programáticamente
- 29. Abrir el control DateTimePicker C# programáticamente
- 30. ToolTip versus Popup (control WPF)
Cambiar el DataContext hizo el truco. ¡Gracias! – Puppy