español controles app wpf xaml

wpf - controles - xaml pdf español



¿Debo usar una página, ventana o UserControl? (2)

Soy nuevo en WPF y estoy desarrollando una nueva aplicación de escritorio que tendrá varias ''ventanas'', como un tablero, visor de eventos, visor de gráficos, por nombrar algunas. Esencialmente, el usuario cambiará entre una de estas vistas que cubrirá toda la pantalla y no solo una parte de ella.

Actualmente estoy atascado en si debería crear una nueva ventana, página o UserControl para cada panel, visor de eventos, visualizador de gráficos, etc.

He leído algo y entiendo que las páginas fueron creadas para la navegación, lo que a su vez me permite mantener un historial de la navegación para que pueda retroceder / avanzar. Sin embargo, no creo que necesite esa funcionalidad para mi aplicación de escritorio.

Entonces, ¿puedo usar un UserControl o una ventana? ¿O debería haber solo una ventana por aplicación?

He buscado en Google durante aproximadamente una hora tratando de encontrar la diferencia entre los tres y no puedo encontrar la respuesta correcta.

Gracias


Una página es algo que usarías en un navegador, no para una aplicación independiente.

La clase Window representa un objeto de nivel superior, es decir, no está destinado a estar contenido en otro control. Todas las ventanas que veas mientras usas el sistema operativo Windows (si fueran aplicaciones WPF) se crearían derivando de la clase Window, y usarías la clase Window para crear tus propias ventanas.

La clase UserControl le permite crear nuevos controles personalizados, en caso de que un control estándar no exista para lo que necesita. Un UserControl puede estar contenido dentro de una ventana u otro control, pero una ventana no está contenida dentro de nada (¡esta es la gran diferencia!)


Una ventana tiene cosas como la barra de título (incluidos los botones min / max / close, etc.) y se puede usar para alojar elementos XAML, como los controles de usuario.

Ciertamente no está restringido a usar una ventana por aplicación, pero algunas aplicaciones elegirían ese patrón (una ventana, hospedando una variedad de UserControls).

Cuando crea una nueva aplicación WPF, de forma predeterminada su aplicación está configurada (en App.xaml) de esta manera:

<Application x:Class="WpfApplication1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" StartupUri="MainWindow.xaml"> <Application.Resources> </Application.Resources> </Application>

La propiedad StartupUri le dice a la aplicación qué ventana abrir primero (puede configurar esto si lo desea)

Si desea separar lógicamente su ventana en pedazos y no quiere demasiado XAML en un solo archivo, podría hacer algo como esto:

<Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:WpfApplication1" Title="Window1" Height="300" Width="300"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="50" /> <RowDefinition /> </Grid.RowDefinitions> <local:HeaderUserControl Grid.Row="0" /> <local:MainSectionUserControl Grid.Row="1" /> </Grid> </Window>

donde HeaderUserControl y MainSectionUserControl son UserControls que encapsulan los aspectos de esa ventana, según sea necesario.

Si desea mostrar otra ventana, puede, en código, llamar a Show o ShowDialog en una instancia de la nueva ventana que desea mostrar ...

Además, sí, una página es parte de una aplicación del navegador WPF, diseñada para ser vista en Internet Explorer.