2016-05-04 2 views
0

links ausgerichtet ist Wenn Sie ein Menü in WPF erstellen, wird das Menüelement linksbündig angezeigt. Gibt es eine Eigenschaft, damit es rechtsbündig erscheint? (Wie Windows-Formulare).Warum das Feld "Menüelemente" bei der Erstellung in XAML & WPF

Ich habe überall im Internet ohne Erfolg gesucht und schätze jede Hilfe, die Sie zur Verfügung stellen könnten.

/* XAML-Code */

<Menu> 
     <MenuItem Header="One"> 
      <MenuItem Header="One-One"></MenuItem> 
      <MenuItem Header="One-Two"></MenuItem> 
      <MenuItem Header="One-Three"></MenuItem> 
      <MenuItem Header="One-Four"></MenuItem> 
      <MenuItem Header="One-Five"></MenuItem> 
     </MenuItem> 
     <MenuItem Header="Two"> 
      <MenuItem Header="Two-One"></MenuItem> 
      <MenuItem Header="Two-Two"></MenuItem> 
      <MenuItem Header="Two-Three"></MenuItem> 
      <MenuItem Header="Two-Four"></MenuItem> 
      <MenuItem Header="Two-Five"></MenuItem> 
     </MenuItem> 

    </Menu> 

enter image description here

+0

Yup, das ist fast definitiv ein Duplikat. Der Kern der Antwort ist, dass die Ausrichtung nichts mit Ihrer App zu tun hat. Es basiert auf der Einstellung "Linke oder rechte Hand" in Windows, um die Verwendung von Menüs mit Touch zu erleichtern. –

Antwort

0

Sie können die Vorlage der Menüelemente bearbeiten wie diese

<Window.Resources> 
     <ControlTemplate x:Key="MenuItemControlTemplate1" TargetType="{x:Type MenuItem}"> 
      <Border x:Name="templateRoot" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True"> 
       <Grid VerticalAlignment="Center"> 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="Auto"/> 
         <ColumnDefinition Width="Auto"/> 
        </Grid.ColumnDefinitions> 
        <ContentPresenter x:Name="Icon" Content="{TemplateBinding Icon}" ContentSource="Icon" HorizontalAlignment="Center" Height="16" Margin="3" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="Center" Width="16"/> 
        <Path x:Name="GlyphPanel" Data="F1M10,1.2L4.7,9.1 4.5,9.1 0,5.2 1.3,3.5 4.3,6.1 8.3,0 10,1.2z" Fill="{TemplateBinding Foreground}" FlowDirection="LeftToRight" Margin="3" Visibility="Collapsed" VerticalAlignment="Center"/> 
        <ContentPresenter ContentTemplate="{TemplateBinding HeaderTemplate}" Content="{TemplateBinding Header}" Grid.Column="1" ContentStringFormat="{TemplateBinding HeaderStringFormat}" ContentSource="Header" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/> 
        <Popup x:Name="PART_Popup" AllowsTransparency="True" Focusable="False" IsOpen="{Binding IsSubmenuOpen, RelativeSource={RelativeSource TemplatedParent}}" PopupAnimation="{DynamicResource {x:Static SystemParameters.MenuPopupAnimationKey}}" Placement="Bottom"> 
         <Border x:Name="SubMenuBorder" BorderBrush="#FF999999" BorderThickness="1" Background="#FFF0F0F0" Padding="2"> 
          <ScrollViewer x:Name="SubMenuScrollViewer" Style="{DynamicResource {ComponentResourceKey ResourceId=MenuScrollViewer, TypeInTargetAssembly={x:Type FrameworkElement}}}"> 
           <Grid RenderOptions.ClearTypeHint="Enabled"> 
            <Canvas HorizontalAlignment="Left" Height="0" VerticalAlignment="Top" Width="0"> 
             <Rectangle x:Name="OpaqueRect" Fill="{Binding Background, ElementName=SubMenuBorder}" Height="{Binding ActualHeight, ElementName=SubMenuBorder}" Width="{Binding ActualWidth, ElementName=SubMenuBorder}"/> 
            </Canvas> 
            <!--<Rectangle Fill="#FFD7D7D7" HorizontalAlignment="Left" Margin="29,2,0,2" Width="1"/>--> 
            <ItemsPresenter x:Name="ItemsPresenter" KeyboardNavigation.DirectionalNavigation="Cycle" Grid.IsSharedSizeScope="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" KeyboardNavigation.TabNavigation="Cycle"/> 
           </Grid> 
          </ScrollViewer> 
         </Border> 
        </Popup> 
       </Grid> 
      </Border> 
      <ControlTemplate.Triggers> 
       <Trigger Property="IsSuspendingPopupAnimation" Value="True"> 
        <Setter Property="PopupAnimation" TargetName="PART_Popup" Value="None"/> 
       </Trigger> 
       <Trigger Property="Icon" Value="{x:Null}"> 
        <Setter Property="Visibility" TargetName="Icon" Value="Collapsed"/> 
       </Trigger> 
       <Trigger Property="IsChecked" Value="True"> 
        <Setter Property="Visibility" TargetName="GlyphPanel" Value="Visible"/> 
        <Setter Property="Visibility" TargetName="Icon" Value="Collapsed"/> 
       </Trigger> 
       <Trigger Property="IsHighlighted" Value="True"> 
        <Setter Property="Background" TargetName="templateRoot" Value="#3D26A0DA"/> 
        <Setter Property="BorderBrush" TargetName="templateRoot" Value="#FF26A0DA"/> 
       </Trigger> 
       <Trigger Property="IsEnabled" Value="False"> 
        <Setter Property="TextElement.Foreground" TargetName="templateRoot" Value="#FF707070"/> 
        <Setter Property="Fill" TargetName="GlyphPanel" Value="#FF707070"/> 
       </Trigger> 
       <Trigger Property="CanContentScroll" SourceName="SubMenuScrollViewer" Value="False"> 
        <Setter Property="Canvas.Top" TargetName="OpaqueRect" Value="{Binding VerticalOffset, ElementName=SubMenuScrollViewer}"/> 
        <Setter Property="Canvas.Left" TargetName="OpaqueRect" Value="{Binding HorizontalOffset, ElementName=SubMenuScrollViewer}"/> 
       </Trigger> 
      </ControlTemplate.Triggers> 
     </ControlTemplate> 
    </Window.Resources> 
    <Grid> 
     <Menu> 
      <MenuItem Header="One" Template="{DynamicResource MenuItemControlTemplate1}"> 
       <MenuItem Header="One-One" Template="{DynamicResource MenuItemControlTemplate1}"></MenuItem> 
       <MenuItem Header="One-Two"></MenuItem> 
       <MenuItem Header="One-Three"></MenuItem> 
       <MenuItem Header="One-Four"></MenuItem> 
       <MenuItem Header="One-Five"></MenuItem> 
      </MenuItem> 
      <MenuItem Header="Two"> 
       <MenuItem Header="Two-One"></MenuItem> 
       <MenuItem Header="Two-Two"></MenuItem> 
       <MenuItem Header="Two-Three"></MenuItem> 
       <MenuItem Header="Two-Four"></MenuItem> 
       <MenuItem Header="Two-Five"></MenuItem> 
      </MenuItem> 

     </Menu> 
    </Grid> 
+0

Leider hat es nicht funktioniert :(Es machte die Menü-Box besser (dünner), aber das Verhalten ist immer noch das gleiche. Danke Freund –

0

was für mich gearbeitet ist folgende:

<Menu> 
    <MenuItem Header="_One"> 
     <MenuItem Header="_One-One"></MenuItem> 
     <MenuItem Header="_One-Two"></MenuItem> 
     <MenuItem Header="_One-Three"></MenuItem> 
     <MenuItem Header="_One-Four"></MenuItem> 
     <MenuItem Header="_One-Five"></MenuItem> 
    </MenuItem> 
    <MenuItem Header="_Two"> 
     <MenuItem Header="_Two-One"></MenuItem> 
     <MenuItem Header="_Two-Two"></MenuItem> 
     <MenuItem Header="_Two-Three"></MenuItem> 
     <MenuItem Header="_Two-Four"></MenuItem> 
     <MenuItem Header="_Two-Five"></MenuItem> 
    </MenuItem> 

</Menu> 

Platzieren Sie ein _ vor dem Namen macht es zu einem Hotkey STRG + der Name des Headers, aber meine sind auch gut ausgerichtet.

+0

Es hat nicht funktioniert mein Freund. Vielen Dank für Ihre Hilfe! –

0

Das Problem lag im Registrierungs-Editor.

Diese Webseite mein Problem gelöst:

http://www.sevenforums.com/tutorials/786-menus-open-left-right-side.html

In meinem Fall nur löschen oder auf 0 setzen den Schlüssel "MenuDropAlignment" in HKEY_CURRENT_USER \ Software \ Microsoft \ Windows NT \ Currentversion \ Windows wurde das Problem behoben .

Ich hoffe, diese Antwort hilft anderen Menschen mit dem gleichen Problem.

Und Dank an Leute, die versucht haben zu helfen.