Wpf - Menú con tres botones

Descripción general

documento que muestra un menú compuesto de tres botones [Aceptar], [Cancelar], [Terminar], incluyendo imagenes.

[TOC] Tabla de Contenidos


↑↑↑

Imagen de los botones que pretendo conseguir.

Imagen con tres Botones


↑↑↑

Codigo XAML de la ventana

    <Grid >


        <Grid.RowDefinitions>
            <RowDefinition Height="auto"  />
            <RowDefinition Height="auto" />
            <RowDefinition Height="auto" />
            <RowDefinition Height="auto" />
        </Grid.RowDefinitions>


        <!-- El menu de la ventana -->
        <DockPanel Grid.Row="0" 
                   x:Name="dockPanelMenu"                     
                   Height="31" Width="Auto"  
                   HorizontalAlignment="Stretch" 
                   VerticalAlignment="Top" 
                   DockPanel.Dock="Top" 
                   LastChildFill="False" 
                   IsEnabled="true" >

            <Menu Name="MenuGeneral" Height="23" Width="Auto" DockPanel.Dock="Top">

                <MenuItem Header="_Archivo" x:Name="MenuArchivo">
                </MenuItem>
                <MenuItem Header="_Editar" x:Name="MenuEditar">
                </MenuItem>
                <MenuItem Header="_Herramientas" x:Name="MenuHerramientas">
                </MenuItem>
                <MenuItem Header="_Ayuda" x:Name="MenuAyuda">
                </MenuItem>

            </Menu>

        </DockPanel>



        <!-- Grid con los tres botones [Aceptar], [Cancelar],[ Terminar] -->
        <Grid  Grid.Row="1" 
               Name="GridPanelTresBotonesOkCancelSalir" 
               HorizontalAlignment="Right"  
               VerticalAlignment="Bottom" 
               Grid.IsSharedSizeScope="True"               Margin="0,10,10,0">
            <Grid.ColumnDefinitions>
                <ColumnDefinition x:Uid="ColumnDefinition1"  SharedSizeGroup="ButtonsAceptarCancelar" />
                <ColumnDefinition x:Uid="ColumnDefinition3"  SharedSizeGroup="ButtonsAceptarCancelar" />
                <ColumnDefinition x:Uid="ColumnDefinition3"  SharedSizeGroup="ButtonsAceptarCancelar" />
            </Grid.ColumnDefinitions>

            <Button Grid.Column="0"                    Name="ButtonAceptar"   
                    Click="ButtonAceptar_Click"  
                    Content="Aceptar"                    Width="120" 
                    IsEnabled="true" />


            <Button Grid.Column="1"                    Name="ButtonCancelar"                    Click="ButtonCancelar_Click" 
                     Content="Cancelar"                    IsDefault="True" 
                    IsEnabled="False" />


            <Button Grid.Column="2"                    Name="ButtonTerminar"                    Click="ButtonTerminar_Click" 
                    Content="Terminar"                    IsCancel="True"                    IsDefault="True" 
                    IsEnabled="true" />

        </Grid>



        <!-- Grid con los tres botones [Aceptar], [Cancelar],[ Terminar] CON IMAGENES -->
        <Grid  Grid.Row="2" 
               Name="GridPanelTresBotonesOkCancelSalirComImagenes" 
               HorizontalAlignment="Right"  
               VerticalAlignment="Bottom" 
               Grid.IsSharedSizeScope="True"               Margin="0,10,10,0">
            <Grid.ColumnDefinitions>
                <ColumnDefinition x:Uid="ColumnDefinition1"  SharedSizeGroup="ButtonsAceptarCancelar"  Width="120"/>
                <ColumnDefinition x:Uid="ColumnDefinition3"  SharedSizeGroup="ButtonsAceptarCancelar" />
                <ColumnDefinition x:Uid="ColumnDefinition3"  SharedSizeGroup="ButtonsAceptarCancelar" />
            </Grid.ColumnDefinitions>

            <Button Grid.Column="0"                    Name="ButtonAceptarConImagen"   
                    Click="ButtonAceptar_Click"  
                    IsDefault="True"                    IsEnabled="true" >
                <StackPanel  Orientation="Horizontal"  HorizontalAlignment="Left" VerticalAlignment="Center">
                    <!-- This file was generated by the AiToXaml tool.-->
                    <!-- Tool Version: 14.0.22307.0 -->
                    <Viewbox Width="16" Height="16" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
                        <Rectangle Width="16" Height="16">
                            <Rectangle.Fill>
                                <DrawingBrush>
                                    <DrawingBrush.Drawing>
                                        <DrawingGroup>
                                            <DrawingGroup.Children>
                                                <GeometryDrawing Brush="#00FFFFFF" Geometry="F1M16,16L0,16 0,0 16,0z" />
                                                <GeometryDrawing Brush="#FFF6F6F6" Geometry="F1M0,8C0,3.582 3.582,0 8,0 12.418,0 16,3.582 16,8 16,12.418 12.418,16 8,16 3.582,16 0,12.418 0,8" />
                                                <GeometryDrawing Brush="#FF329932" Geometry="F1M8,12L6,12 4,8 6,8 7,10 10,4 12,4z M8,1C4.135,1 1,4.134 1,8 1,11.865 4.135,15 8,15 11.865,15 15,11.865 15,8 15,4.134 11.865,1 8,1" />
                                                <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1M12,4L8,12 6,12 4,8 6,8 7,10 10,4z" />
                                            </DrawingGroup.Children>
                                        </DrawingGroup>
                                    </DrawingBrush.Drawing>
                                </DrawingBrush>
                            </Rectangle.Fill>
                        </Rectangle>
                    </Viewbox>
                    <Label  Content="Aceptar"    />
                </StackPanel>
            </Button>


            <Button Grid.Column="1"                    Name="ButtonCancelarConImagen"                    Click="ButtonCancelar_Click" 
                    IsDefault="True" 
                    IsEnabled="False">
                <StackPanel  Orientation="Horizontal"  HorizontalAlignment="Left" VerticalAlignment="Center">
                    <!-- This file was generated by the AiToXaml tool.-->
                    <!-- Tool Version: 14.0.22307.0 -->
                    <!-- This file was generated by the AiToXaml tool.-->
                    <!-- Tool Version: 14.0.22307.0 -->
                    <Viewbox Width="24" Height="24" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
                        <Rectangle Width="24" Height="24">
                            <Rectangle.Fill>
                                <DrawingBrush>
                                    <DrawingBrush.Drawing>
                                        <DrawingGroup>
                                            <DrawingGroup.Children>
                                                <GeometryDrawing Brush="#FFF6F6F6" Geometry="F1M26.9072,22.7812L32.0002,16.4022 32.0002,15.0002 27.1782,15.0002 23.2442,18.3772 22.5512,17.5392C23.4162,15.8822 23.9122,14.0062 23.9122,12.0092 23.9122,5.4062 18.5572,0.0351999999999997 11.9762,0.0351999999999997 5.3732,0.0351999999999997 0.000199999999999534,5.4092 0.000199999999999534,12.0132 0.000199999999999534,18.6172 5.3732,23.9892 11.9762,23.9892 14.1332,23.9892 16.1522,23.4052 17.8992,22.3972L18.4332,22.9312 14.9222,26.0952C13.6172,27.4062 13.6182,29.6162 14.9252,30.9222 15.5452,31.5422 16.4282,31.8982 17.3462,31.8982 18.2722,31.8982 19.1292,31.5502 19.8212,30.8502L23.0842,27.2492 28.6082,31.9612 32.0002,31.8632 32.0002,29.3482z" />
                                                <GeometryDrawing Brush="#FF329932" Geometry="F1M9,17.6719L9,6.2709 17.549,11.9709z M16.968,16.5509C17.576,15.9359 18.472,15.5799 19.419,15.5799 20.029,15.5799 20.6,15.7479 21.094,16.0269 21.644,14.7879 21.955,13.4179 21.955,11.9709 21.955,6.4619 17.527,1.9949 12.02,1.9949 6.51,1.9949 2.043,6.4619 2.043,11.9709 2.043,17.4809 6.51,21.9469 12.02,21.9469 13.652,21.9469 15.186,21.5469 16.541,20.8499 15.662,19.5179 15.807,17.7109 16.968,16.5509" />
                                                <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1M9,6.27L17.55,11.97 9,17.67z" />
                                                <GeometryDrawing Brush="#FFE51300" Geometry="F1M24.3896,22.9639L28.9266,17.4679 27.9266,17.4679 22.8896,21.4639 20.3896,17.9639C19.9106,17.4169 18.8606,17.4889 18.3896,17.9639 17.9036,18.4499 17.8056,19.3719 18.3896,19.9639L21.3896,22.9639 16.3896,27.4639C15.8506,28.0049 15.8896,28.9639 16.3896,29.4639 16.8896,29.9639 17.8526,30.0039 18.3896,29.4639L22.9636,24.4149 29.3896,29.9639 29.8896,29.9559z" />
                                            </DrawingGroup.Children>
                                        </DrawingGroup>
                                    </DrawingBrush.Drawing>
                                </DrawingBrush>
                            </Rectangle.Fill>
                        </Rectangle>
                    </Viewbox>
                    <Label  Content="Cancelar"    />
                </StackPanel>
            </Button>


            <Button Grid.Column="2"                    Name="ButtonTerminarConImagen"                    Click="ButtonTerminar_Click" 
                    IsCancel="True"                    IsDefault="True" 
                    IsEnabled="true" >
                <StackPanel  Orientation="Horizontal"  HorizontalAlignment="Left" VerticalAlignment="Center">
                    <Viewbox Width="16" Height="16" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
                        <Rectangle Width="16" Height="16">
                            <Rectangle.Fill>
                                <DrawingBrush>
                                    <DrawingBrush.Drawing>
                                        <DrawingGroup>
                                            <DrawingGroup.Children>
                                                <GeometryDrawing Brush="#00FFFFFF" Geometry="F1M16,16L0,16 0,0 16,0z" />
                                                <GeometryDrawing Brush="#FFF6F6F6" Geometry="F1M10.9998,-0.000199999999999534L-0.000199999999999534,0.00380000000000047 -0.000199999999999534,15.9998 10.9998,15.9998 10.9998,13.0188 12.0418,13.0038 15.9998,8.9998 15.9998,7.0208 11.9998,3.0008 10.9998,3.0008z M2.9998,3.0008L5.2228,3.0008 7.9798,5.9808 2.9998,6.0008z M2.9998,9.9998L8.0788,9.9998 5.2438,13.0008 2.9998,13.0008z" />
                                                <GeometryDrawing Brush="#FF424242" Geometry="F1M10,2L10,1 1,1 1,15 10,15 10,14 2,14 2,2z M14.97,8.009L11.48,11.499 7.991,11.499 10.5,9 4,9 4,7 10.453,7.016 7.991,4.52 11.48,4.52z" />
                                            </DrawingGroup.Children>
                                        </DrawingGroup>
                                    </DrawingBrush.Drawing>
                                </DrawingBrush>
                            </Rectangle.Fill>
                        </Rectangle>
                    </Viewbox>
                    <Label  Content="Salir"    />
                </StackPanel>
            </Button>

        </Grid>



    </Grid>
    


↑↑↑

Codigo VB del formulario

#Region "Botones"

    Private Sub ButtonAceptar_Click(sender As Object, e As RoutedEventArgs)
        Call AccionButtonAceptar()
    End Sub

    Private Sub ButtonCancelar_Click(sender As Object, e As RoutedEventArgs)
        Call AccionButtonCancelar()
    End Sub

    Private Sub ButtonTerminar_Click(sender As Object, e As RoutedEventArgs)
        Call AccionButtonTerminar()
    End Sub

#End Region

#Region "Botones Funciones con las acciones    "

    ''' <summary>
    ''' Estado de los botones según el botón pulsado
    ''' </summary>
    ''' <param name=valor">un valor Boolean que indica si el botón [Cancelar] esta activado [True], o no [False]</param>"
    Private Sub IsEnableButonCancel(ByVal valor As Boolean)
        '------------------------------------------------------
        ' si el button [Cancelar] esta enabled,  esta activo, 
        ' Los otros dos deben estas desactivados, y el menu también.
        '------------------------------------------------------
        ButtonAceptar.IsEnabled = Not (valor)
        ButtonCancelar.IsEnabled = valor
        ButtonTerminar.IsEnabled = Not (valor)

        '----------------
        ' Version con imágenes
        ButtonAceptarConImagen.IsEnabled = Not (valor)
        ButtonCancelarConImagen.IsEnabled = valor
        ButtonTerminarConImagen.IsEnabled = Not (valor)


        ' Código desactivación del menu
        MenuGeneral.IsEnabled = Not (valor)
    End Sub



    ''' <summary>
    ''' Acción a realizar al pulsar el botón [Aceptar]
    ''' </summary>
    Private Sub AccionButtonAceptar()
        ' el botón cancelar activo y los demás desactivados
        IsEnableButonCancel(True)
    End Sub

    ''' <summary>
    ''' Acción a realizar al pulsar el botón [Cancelar]
    ''' </summary>
    Private Sub AccionButtonCancelar()
        ' el botón cancelar desactivado y los demás activos
        IsEnableButonCancel(False)
    End Sub

    ''' <summary>
    ''' Acción a realizar al pulsar el botón [Terminar]
    ''' </summary>
    Private Sub AccionButtonTerminar()
        ' Aquí da igual como estén los botones, porque el proceso se termina
        ' el botón cancelar desactivado y los demás activos
        IsEnableButonCancel(False)

        Me.Close()
    End Sub

#End Region

Y eso es todo


↑↑↑

A.2.Enlaces

[Para saber mas]
[Grupo de documentos]
[Documento Index]
[Documento Start]
[Imprimir el Documento]
© 1997 - - La Güeb de Joaquín
Joaquín Medina Serrano
Ésta página es española

Codificación
Fecha de creación
Última actualización
[HTML5 Desarrollado usando CSS3]