Răsfoiți Sursa

Fixed context menu styling.

Steven Kirk 6 ani în urmă
părinte
comite
a5f07f78e9

+ 6 - 0
src/Avalonia.Controls/ContextMenu.cs

@@ -2,6 +2,7 @@ using System;
 using System.ComponentModel;
 using System.ComponentModel;
 using System.Linq;
 using System.Linq;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
+using Avalonia.Controls.Generators;
 using Avalonia.Controls.Platform;
 using Avalonia.Controls.Platform;
 using Avalonia.Controls.Primitives;
 using Avalonia.Controls.Primitives;
 using Avalonia.Controls.Templates;
 using Avalonia.Controls.Templates;
@@ -121,6 +122,11 @@ namespace Avalonia.Controls
             IsOpen = false;
             IsOpen = false;
         }
         }
 
 
+        protected override IItemContainerGenerator CreateItemContainerGenerator()
+        {
+            return new MenuItemContainerGenerator(this);
+        }
+
         private void PopupClosed(object sender, EventArgs e)
         private void PopupClosed(object sender, EventArgs e)
         {
         {
             var contextMenu = (sender as Popup)?.Child as ContextMenu;
             var contextMenu = (sender as Popup)?.Child as ContextMenu;

+ 16 - 6
src/Avalonia.Themes.Default/ContextMenu.xaml

@@ -10,12 +10,22 @@
               BorderBrush="{TemplateBinding BorderBrush}"
               BorderBrush="{TemplateBinding BorderBrush}"
               BorderThickness="{TemplateBinding BorderThickness}"
               BorderThickness="{TemplateBinding BorderThickness}"
               Padding="{TemplateBinding Padding}">
               Padding="{TemplateBinding Padding}">
-        <ItemsPresenter Name="PART_ItemsPresenter"
-                        Items="{TemplateBinding Items}"
-                        ItemsPanel="{TemplateBinding ItemsPanel}"
-                        ItemTemplate="{TemplateBinding ItemTemplate}"
-                        KeyboardNavigation.TabNavigation="Continue"/>
+          <ScrollViewer>
+            <Panel>
+              <ItemsPresenter Name="PART_ItemsPresenter"
+                              Items="{TemplateBinding Items}"
+                              ItemsPanel="{TemplateBinding ItemsPanel}"
+                              ItemTemplate="{TemplateBinding ItemTemplate}"
+                              KeyboardNavigation.TabNavigation="Continue"/>
+              <Rectangle Name="iconSeparator"
+                         Fill="{DynamicResource ThemeControlMidBrush}"
+                         HorizontalAlignment="Left"
+                         IsHitTestVisible="False"
+                         Margin="29,2,0,2"
+                         Width="1"/>
+              </Panel>
+          </ScrollViewer>
       </Border>
       </Border>
     </ControlTemplate>
     </ControlTemplate>
   </Setter>
   </Setter>
-</Style>
+</Style>