none
Ayuda - Ejemplo WPF y Menus RRS feed

  • Pregunta

  • Hola buenos dias, he estado leyendo sobre wpf y he logrado hacer algunas aplicaciones de prueba donde muestro otras ventanas desde un menu, pero no he logrado lo que quiero y segun me han recomendado es lo correcto.

    Quiero que desde un menu pueda elegir las opciones y verlas en la misma pagina, segun me indicaron eso se hace con pages.

    Vi un ejemplo asi.


    la barra del lado izquierdo son unos menus y el del derecho muestra los contenidos, vi que la page del lado derecho cambia como si fuera ajax, se me hace interesante, aunque en mi caso quiero con un menu, no pude poner el link del video pq aqui no me deja poner links no se por que.

    Les agradecería si me pueden dejar el código de un ejemplo pequeño, con que abra 2 menús en una page ya con eso me guio para seguir el resto. Los ejemplo que hay en la web son muy limitados fue con los que aprendí, muestran la page y los botones de navigation pero no con menu como yo quiero o en su defecto como el video que vi

    Gracias por su colaboración



    martes, 16 de julio de 2013 14:11

Todas las respuestas

  • hola

    lo que no entendi es que tiene que ver ajax con wpf, con xaml no desarrollas web , no al menos que sea Silverlight

    no has buscado algun control de terceros que permita crear un menu colapsable

    despues para navegar lo que haces es usar un control Frame para asi cargar alli un Page

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    martes, 16 de julio de 2013 15:27
  • Hola tuttini, lo que hablo de ajax es que se parece el efecto, que solo cambia una parte del form nada mas, y pues la idea no es usar controles de terceros si no lo que tengo, eso se puede hacer el problema es que no se como.

    Con un ejemplo que me dieran podría empezar, ya que los ejemplos que hay es en navigation con pages, lo que yo quiero es tener por ejemplo el menu clientes

    * clientes: -registrar

    -actualizar

    -buscar

    Tener un menu asi, y que al elegir una opción pues se muestre en el mismo form o page y no en varias ventanas, que sea una aplicación normal pero no se como.

    Agradecería un ejemplo para poder empezar

    martes, 16 de julio de 2013 15:34
  • Hola tuttini, lo que hablo de ajax es que se parece el efecto, que solo cambia una parte del form nada mas, y pues la idea no es usar controles de terceros si no lo que tengo, eso se puede hacer el problema es que no se como.

    Con un ejemplo que me dieran podría empezar, ya que los ejemplos que hay es en navigation con pages, lo que yo quiero es tener por ejemplo el menu clientes

    * clientes: -registrar

    -actualizar

    -buscar

    Tener un menu asi, y que al elegir una opción pues se muestre en el mismo form o page y no en varias ventanas, que sea una aplicación normal pero no se como.

    Agradecería un ejemplo para poder empezar


    Por favor alguien que me colabore con el ejemplo :(
    sábado, 20 de julio de 2013 6:27
  • Hola

    Lo que tu quieres hacer es un formulario principal donde se muestres tus ventanas en el mismo lado, me refiero al lado de un menú desplegable. Puedes hacer esto. En la parte de arriba puedes usar un Ribbon que lo puedes descargar de aquí. Microsoft Ribbon for WPF October 2010

    Y en el lado izquierdo puedes usar un Expander o un TreeView


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    • Propuesto como respuesta CrissR jueves, 1 de agosto de 2013 20:03
    lunes, 29 de julio de 2013 15:01
  • Este es el XAML de ese ejemplo

    <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
            xmlns:r="clr-namespace:Microsoft.Windows.Controls.Ribbon;assembly=RibbonControlsLibrary"
            x:Class="WpfMenu2.MainWindow"
            Title="MainWindow" Height="350" Width="525" WindowState="Maximized">
    
        <StackPanel Margin="0,0,2,0" RenderTransformOrigin="0.466,0.492" >
            <Grid/>
            <r:Ribbon x:Name="mainRibbon" Title="Aplimatica">
                <r:RibbonTab Header="Mantenimientos">
                    <r:RibbonGroup x:Name="Group1" Header="Usuarios">
                        <r:RibbonButton Label="Nuevo" LargeImageSource="/Imagenes/New.png"/>
                        <r:RibbonButton Label="Guardar" LargeImageSource="/Imagenes/Save.png"/>
                        <r:RibbonButton Label="Eliminar" LargeImageSource="/Imagenes/Delete.png"/>
                    </r:RibbonGroup>
                </r:RibbonTab>
                
                <r:RibbonTab Header="Reportes">
                    <r:RibbonGroup x:Name="Group2" Header="Lista de Reportes">
                        <r:RibbonButton Label="Imprimir" LargeImageSource="/Imagenes/Print.png"/>
                    </r:RibbonGroup>
                </r:RibbonTab>
            </r:Ribbon>
    
            <StackPanel HorizontalAlignment="Left" Height="192" Width="200" Margin="0,0,315,0">
                <Expander Background="Orange" x:Name="Expander1" Header="Almacén" Margin="0,0,6,0" RenderTransformOrigin="0.5,0.5">
    
                    <Expander.RenderTransform>
                        <TransformGroup>
                            <ScaleTransform/>
                            <SkewTransform/>
                            <RotateTransform Angle="359.821"/>
                            <TranslateTransform X="-0.072"/>
                        </TransformGroup>
                    </Expander.RenderTransform>
                    <ListBox Background="Yellow" x:Name="listbox1">
                        <ListBoxItem>
                            <TextBlock><Run Text="Inventario"/></TextBlock>
                        </ListBoxItem>
                        <ListBoxItem>
                            <TextBlock><Run Text="Stock"/></TextBlock>
                        </ListBoxItem>
                    </ListBox>
    
                </Expander>
    
                <Expander Background="Orange" x:Name="Expander3" Header="Ventas" Margin="0,0,6,0" RenderTransformOrigin="0.5,0.5">
                    <Expander.RenderTransform>
                        <TransformGroup>
                            <ScaleTransform/>
                            <SkewTransform/>
                            <RotateTransform Angle="359.821"/>
                            <TranslateTransform X="0.072"/>
                        </TransformGroup>
                    </Expander.RenderTransform>
                    <ListBox Background="Yellow" x:Name="listbox2">
                        <ListBoxItem>
                            <TextBlock><Run Text="Orden de Venta"/></TextBlock>
                        </ListBoxItem>
                        <ListBoxItem>
                            <TextBlock><Run Text="Registrar Venta"/></TextBlock>
                        </ListBoxItem>
                    </ListBox>
                </Expander>
                <Expander Background="Orange" x:Name="Expander2" Header="Compras" Margin="0,0,6,0" RenderTransformOrigin="0.5,0.5">
                    <Expander.RenderTransform>
                        <TransformGroup>
                            <ScaleTransform/>
                            <SkewTransform/>
                            <RotateTransform Angle="359.821"/>
                            <TranslateTransform X="0.072"/>
                        </TransformGroup>
                    </Expander.RenderTransform>
                    <ListBox Background="Yellow" x:Name="listbox3">
                        <ListBoxItem>
                            <TextBlock><Run Text="Orden de Compra"/></TextBlock>
                        </ListBoxItem>
                        <ListBoxItem Height="20">
                            <TextBlock><Run Text="Registrar Compra"/></TextBlock>
                        </ListBoxItem>
                    </ListBox>
                </Expander>
            </StackPanel>
    
        </StackPanel>
    
    </Window>


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    lunes, 29 de julio de 2013 15:02
  • Huy Super pedro Avila probare como me va, la idea es que recargue en la misma pagina en vez de abrir varias ventanas. Lo probare y te cuento como me fue.
    martes, 30 de julio de 2013 20:38
  • Tienes que poner en la lado derecho lo que equivale a un panel de WindowsForm en WPF es un frame creo, eso tienes que averiguar.

    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú


    • Editado Pedro Ávila martes, 30 de julio de 2013 20:51 xxxxxxxxx
    martes, 30 de julio de 2013 20:50
  • Es que esa es mi duda, hacer el menu lo se, lo que no se es como hacer para que carguen las opciones en la misma ventana y no en una nueva, en la web se encuentran ejemplos pero cargando en diferentes ventanas y no en la misma. Ese ha sido mi inconveniente, que no hay ejemplos sobre eso. 

    Si llegas a saber como es te encargo ya que estaba entusiasmado con wpf y no quiero tener que volver a WindowsForms :(

    martes, 30 de julio de 2013 21:08
  • Eso lo he hecho en WindowsForm, lo que hice es lo mismo que esta en este ejemplo de WPF, debes de probar con el frame y creas los ventanas que quieras llamar en un UserControl y eso lo llamas dentro del frame. Tienes que hacer la prueba, avanza con lo que te mostre.

    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    martes, 30 de julio de 2013 21:12
  • Hola

    Tienes que usar un Frame y Pages, en el Frame vas a llamar a los pages, eso es todo ya me cerciore.


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    martes, 30 de julio de 2013 23:49
  • Hola pedro, me podrías dar un ejemplo de como se cambia con el frame o la page, es que soy nuevo en wpf y no se como, con un ejemplo ya puedo arrancar con el resto. En Winforms era mas fácil por el mdi pero aquí estoy perdido.
    miércoles, 31 de julio de 2013 3:17
  • Buenas tardes pedro, me nace una respuesta, interesante el link del ribbon que pones pero mi duda es, necesariamente hay que usar el instalador?? no hay unos archivos que se adjunten a la aplicacion, pq a la hora de instalar una aplicacion con ribbon en otro equipo como haria, no me parece ideal instalar el ribbon en cada equipo teniendo en cuenta que no es desarrollado por mi.

    Otra cosa es que he visto otros ribbon en codeproyect y otros, cual vendria a ser la diferencia entre estos y esta version 2010 que publicas de microsoft???

    Gracias de antemano

    jueves, 1 de agosto de 2013 20:05
  • Hola CrissR

    En tu app tienes que crear por ejemplo una carpeta Librería a nivel de solución donde en la cual pones la dll del ribbon, así no tendrás problemas al momento de distribuir tu app.

    Y sobre los demas ribbon la diferencia es que son mas o menos la verción 2007, 2010 del office, pero en realidad hay muchos de librerías de terceros a mi en especial me gusta este Ribbon

    Este es como el office 2013


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    jueves, 1 de agosto de 2013 20:21
  • Impresionante esa interfaz, esta mucho mejor, pero lastima que sea de pago. Entre los gratuitos cual crees que sea mejor, la que me das del link de microsoft o las que hay en codeplex de terceros??
    jueves, 1 de agosto de 2013 20:37
  • El de Microsoft me gusta en lo personal, ya depende de ti, tienes los de Codeplex que también son gratuitos, depende del presupuesto que tengas como has visto las librerías de terceros le dan otra apariencia a tu app pero como ya sabes son de pago.

    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    • Propuesto como respuesta CrissR jueves, 1 de agosto de 2013 23:00
    jueves, 1 de agosto de 2013 20:47
  • Buenas noches Pedro Avila, perdon tanta molestadera, en el ejemplo de arriba, donde dice aplimatica; esa barra se puede esconder?? o en una segunda opcion se puede esconder el contorno de la ventana y agregarle a esa barra los botones maximizar, restaurar y cerrar??

    Lo digo pensando en la estetica, Gracias

    jueves, 1 de agosto de 2013 22:59
  • Tienes razón en ese detalle pero la verdad no me había percatado de eso, pero puedes seleccionar el control ribbon y precionar F4 y ir probando en sus propiedades.

    Suerte!!!


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    jueves, 1 de agosto de 2013 23:48