2009-10-04 12 views
5

Ho riscontrato un problema durante il tentativo di implementare uno Menu e non riesco a capire cosa sta succedendo. Sto cercando di creare un menu a strato singolo usando il controllo Menu. Ecco il mio codice di menu:WPF Menuitem Border

<Menu DockPanel.Dock="Top" Height="22" Name="menu1" VerticalAlignment="Top" Background="#FF325170"> 
    <MenuItem Header="Featured" Style="{StaticResource menuItemStyle}" /> 
    <MenuItem Header="Search" Style="{StaticResource menuItemStyle}" /> 
</Menu> 

E il mio stile per i miei MenuItem s è la seguente:

<Style x:Key="menuItemStyle" TargetType="{x:Type MenuItem}"> 
    <Style.Triggers> 
    <Trigger Property="MenuItem.IsMouseOver" Value="true"> 
     <Setter Property = "Foreground" Value="Red"/> 
    </Trigger> 
    </Style.Triggers> 
</Style> 

Quando ho mouseover le voci di menu, c'è un Border che appare, e non posso capire per la vita di me come rimuovere questo confine. Eventuali suggerimenti?

risposta

5

Per molti stili di controllo WPF incorporati, è necessario eseguire l'override di ControlTemplate.

Here is the MSDN page che fornisce il Menu ControlTemplate, con le istruzioni su come usarlo - in pratica si stanno inserendo copie locali di tutti gli stili per il controllo Menu, che quindi sovrascrivono l'aspetto di controllo predefinito.

Per risolvere il problema si dovrebbe essere in grado di inserire solo questo stile:

<Style x:Key="{x:Type Menu}" TargetType="{x:Type Menu}"> 
    <Setter Property="OverridesDefaultStyle" Value="True"/> 
    <Setter Property="SnapsToDevicePixels" Value="True"/> 
    <Setter Property="Template"> 
    <Setter.Value> 
     <ControlTemplate TargetType="{x:Type Menu}"> 
     <!--Here is where you change the border thickness to zero on the menu--> 
     <Border BorderThickness="0"> 
      <StackPanel ClipToBounds="True" Orientation="Horizontal" 
         IsItemsHost="True"/> 
     </Border> 
     </ControlTemplate> 
    </Setter.Value> 
    </Setter> 
</Style> 
+0

Ok, che ha un senso. Grazie! – Chrisc

Problemi correlati