Actualmente estoy escribiendo una aplicación de escritorio, pero yo no puedo conseguir mi cabeza alrededor de lo que para el uso al redirigir a alguien a una nueva sección de la aplicación.
Mis opciones parecen ser
- Ventana
- Página
- UserControl
pero no entiendo cuál es la diferencia entre ellos es, y cuándo debo usar cada uno de ellos.
Podría alguien explicar las diferencias para mí, y dar un ejemplo de qué situaciones y/o aplicaciones que puede utilizar cada uno?
Un Ventana objeto es exactamente lo que parece: se trata de un nuevo
Window
para su aplicación. Se debe utilizar cuando se desea pop una enteramente nueva ventana. Yo no suelo utilizar más de unaWindow
en WPF porque prefiero poner el contenido dinámico en mi Ventana principal de que los cambios en función de la acción del usuario.Un Página es una página dentro de su Ventana. Se utiliza sobre todo para los sistemas basados en la web como una XBAP, donde se tiene una sola ventana del navegador y diferentes páginas pueden ser alojados en esa ventana. También puede ser utilizado en Las Aplicaciones De Navegación como sellmeadog dijo.
Un UserControl es reutilizable por el usuario creado control que se puede agregar a la interfaz de usuario de la misma manera que te gustaría añadir cualquier otro control. Por lo general, crear un
UserControl
cuando quiero construir en algunas funciones personalizadas (por ejemplo, unCalendarControl
), o cuando tengo una gran cantidad de relacionados con el código XAML, como unView
cuando se utiliza el patrón de diseño MVVM.Cuando la navegación entre ventanas, usted puede simplemente crear un nuevo
Window
objeto y mostrarpero como he dicho al principio de esta respuesta, prefiero no gestionar varias ventanas si es posible.
Mi método preferido de navegación es crear algún contenido dinámico utilizando un
ContentControl
, y rellenar con unaUserControl
que contengan cualquiera que sea el punto de vista actual es.y en su navegar caso de que usted simplemente puede establecer utilizando la
Pero si estás trabajando con WPF, me gustaría recomendar encarecidamente el patrón de diseño MVVM. Tengo una muy ejemplo básico en mi blog que ilustra cómo te gustaría navegar usando MVVM, el uso de este patrón:
AuditViewModel
que contiene todos los datos y la funcionalidad para el formulario, y me gustaría dibujar usando unAuditView
UserControl, o simplemente unDataTemplate
ViewModel
es normalmente construido para laView
, mientras que elModels
son los objetos de datos y las clases («bloques de construcción») utilizados por la aplicación (ViewModels
)TabControl.ItemsSource
a una colección de objetos, y el uso DataTemplates decir WPF cómo dibujar cada tipo de objeto en cada ficha. Normalmente es algo como esteWindows.Forms.Form
, por lo que sólo una nueva ventanaPágina es, según la documentación en línea:
Así que, básicamente, el uso de este si se va a visualizar algunos contenidos HTML
UserControl es para los casos cuando se desea crear algunos componentes reutilizables (pero no independiente) para utilizar en múltiples diferentes
Windows
UserControl
en caso de que usted piensa que el mismo conjunto de controles que se va a utilizar en esta ventana usted podrá utilizar en algunos otros también, así que en lugar de escribir el doble código, sólo tienes que crear unaUserControl
, pero si no, sólo hay que poner controles para la visualización de los datos en elWindow
sí mismo, en el lado derecho de los botones que mantioned.DataTemplates
. Estos se usan cuando quieres decirle a WPF cómo dibujar un elemento dentro de un ámbito específico. Por ejemplo, si usted quería llamar suButtons
ser redondo círculos, usted podría simplemente utilizar unDataTemplate
en lugar de unUserControl
. Yo normalmente usoUserControls
cuando quiero un nuevo control con su propia funcionalidad, o cuando tengo un montón de XAML para un único componente, tal como unView
. Para los pequeños trozos de código XAML que no requieren ninguna funcionalidad especial, usted debe utilizar unDataTemplate
en lugar de crear unUserControl
Page
no es HTML pero XAML. Sin embargo, unPage
es atado en el marco de navegación que es conceptualmente similar a la forma de navegación que se realiza en un navegador web. (Y las páginas que incluso puede estar hospedado en un navegador si la aplicación es una aplicación XBAP.)Todo depende de la aplicación que estamos tratando de construir. Uso
Window
s si usted está construyendo un diálogo en función de la aplicación. UsoPage
s si usted está construyendo un la navegación basada en la aplicación.UserControl
s será útil, independientemente de la dirección en la que ir como usted las puede utilizar tanto en Windows como en las Páginas.Un buen lugar para empezar a explorar está aquí: http://windowsclient.net/learn
Normalmente se utiliza Uno de los Principales
Window
para la aplicación y otros de windows pueden ser utilizadas en situaciones como cuando se necesitan ventanas emergentes, porque en lugar de utilizar emergente controles XAML que no son visibles podemos utilizar una Ventana en la que es visible en tiempo de diseño, de manera que será más fácil trabajar con lospor otro lado utilizamos muchas páginas para desplazarse de una pantalla a otra como Usuario de la pantalla de gestión a Fin de Pantalla etc En la Ventana principal podemos utilizar
Frame
de control para la navegación, como el de abajoXAML
C#
Que es una manera de hacerlo también podemos utilizar un Control de Ficha en lugar de Fram y Agregar páginas a que el uso de un Diccionario, mientras que la adición de la nueva página de verificación si el control ya existe, entonces sólo navegar de otra manera de agregar y navegar. Espero que ayude a alguien
La mayoría de todos, se ha publicado la respuesta correcta. Me gustaría añadir algunos enlaces, para que usted pueda referirse a ellos y que tengan una clara y mejores ideas acerca de la misma:
UserControl:
http://msdn.microsoft.com/en-IN/library/a6h7e207(v=vs 71).aspx
La diferencia entre una página y la de la ventana con respecto a WPF:
Página vs Ventana en WPF?