2012-03-23 17 views
6

Cuando hago clic en un botón en la barra de navegación, se abre una nueva ventana. Por ejemplo:Cambiar el contenido de la ventana de WPF

private void btFinanzen_Click(object sender, RoutedEventArgs e) 
    { 
     Finanz mw = new Finanz(login); 
     mw.Show(); 

    } 

Ahora, no me quieren mostrar en una nueva ventana. En lugar de eso, quiero que se muestre en la misma ventana. Intenté con lo siguiente:

private void btFinanzen_Click(object sender, RoutedEventArgs e) 
    { 
     Finanz mw = new Finanz(login); 
     //mw.Show(); 
     this.Content = Finanz f; 

    } 

pero falló. Lo que debería decir es que ahora tengo muchas ventanas diferentes y quiero que se muestren todas en una ventana, cada una haciendo clic en un botón diferente. ¿Cómo puedo gestionar esto?

Respuesta

6

Lo que tiene que hacer es usar un UserControl en lugar de una ventana para su contenido reemplazable. Agregue un nuevo UserControl para cada posible contenido que desee mostrar en este. Contenido de su proyecto. Agregue el contenido que tenía previamente en la segunda ventana al UserControl apropiado. Después de eso, puede simplemente crear una instancia del nuevo control en su código y asignarlo a su área de contenido de su ventana principal.

Por ejemplo, crea un UserControl ctlFinanz con el contenido de su ventana anterior de Finanz. Ahora, se escribe:

this.Content = new ctlFinanz(login); 

Eso es todo :-)

1

Tuve el mismo problema y decidí crear un control de usuario independiente para cada ventana, ponerlas en mi wpf y configurar la visibilidad de todas las ventanas, excepto la activa, en Colapsar.

0

Para mí, esto suena como lugar de utilizar un marco con páginas. En lugar de hacer muchas ventanas, cree una ventana con un marco, luego coloque el contenido en las páginas. Entonces, todo lo que tiene que hacer es cambiar el contenido del marco a una página diferente cada vez que presiona un botón de navegación.

Cuestiones relacionadas