2011-05-06 16 views
6

Estoy buscando un buen ejemplo sobre el estilo de elementos ContextMenu y ContextMenu en WPF. Lo que me gustaría es un desglose de cómo ContextMenu, Menu y MenuItems juegan juntos. Por lo que he encontrado hasta ahora, parece que puedo diseñar una parte de ellos, pero no todo lo que quiero. Un ejemplo completo del diseño de cada pieza sería genial o un artículo que lo atravesara sería aún mejor.Elementos ContextMenu y ContextMenu de diseño

+0

Posible duplicado de [Default ContextMenu Estilo - WPF ] (http://stackoverflow.com/questions/641634/default-contextmenu-style-wpf) – adeady

Respuesta

1

Aquí está una manera con el estilo de un contextMenu, para eliminar el lado izquierdo de la misma:

<Style x:Key="ContextMenuStyle1" TargetType="{x:Type ContextMenu}"> 
    <Setter Property="Background" Value="{DynamicResource MenuBackgroundBrush}"/> 
    <Setter Property="BorderThickness" Value="1"/> 
    <Setter Property="BorderBrush" Value="{DynamicResource WindowBorderBrush}"/> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type ContextMenu}"> 
       <Border Uid="Border_93"> 
        <Border.Style> 
         <Style TargetType="{x:Type Border}"> 
          <Setter Property="Tag" Value="{DynamicResource {x:Static SystemParameters.DropShadowKey}}"/> 
          <Style.Triggers> 
           <DataTrigger Binding="{Binding Tag, RelativeSource={RelativeSource Self}}" Value="True"> 
            <Setter Property="Background" Value="Transparent"/> 
            <Setter Property="Padding" Value="0,0,5,5"/> 
            <Setter Property="Effect"> 
             <Setter.Value> 
              <DropShadowEffect BlurRadius="4" Opacity="0.8" ShadowDepth="1"/> 
             </Setter.Value> 
            </Setter> 
           </DataTrigger> 
          </Style.Triggers> 
         </Style> 
        </Border.Style> 
       </Border> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

Entonces usarlo:

<StackPanel x:Name="LayoutRoot"> 
    <Button Content="Click for ContextMenu" Width="30" HorizontalAlignment="Center" VerticalAlignment="Center"> 
     <Button.ContextMenu> 
      <ContextMenu Template="{DynamicResource ContextMenuControlTemplate1}" Style="{DynamicResource ContextMenuStyle1}"> 
       <MenuItem Header="File"/> 
       <MenuItem Header="Edit"/> 
       <MenuItem Header="View"/> 
       <MenuItem Header="Recent Files"/> 
        <MenuItem Header="file1.txt"/> 
        <MenuItem Header="file2.txt"/> 
      </ContextMenu> 
     </Button.ContextMenu> 
</Button> 

+3

Interesante cómo acabas de arrancar esta respuesta: http://stackoverflow.com/a/3284160/478049 – techvice

Cuestiones relacionadas