Browse Source

Fix menu separators.

pull/545/head
Steven Kirk 10 years ago
parent
commit
5ce57ad029
  1. 1
      samples/ControlCatalog/Pages/MenuPage.xaml
  2. 1
      src/Avalonia.Controls/Avalonia.Controls.csproj
  3. 27
      src/Avalonia.Controls/Generators/MenuItemContainerGenerator.cs
  4. 2
      src/Avalonia.Controls/MenuItem.cs

1
samples/ControlCatalog/Pages/MenuPage.xaml

@ -10,6 +10,7 @@
<Menu>
<MenuItem Header="_First">
<MenuItem Header="Standard _Menu Item"/>
<Separator/>
<MenuItem Header="Menu with _Submenu">
<MenuItem Header="Submenu _1"/>
<MenuItem Header="Submenu _2"/>

1
src/Avalonia.Controls/Avalonia.Controls.csproj

@ -51,6 +51,7 @@
<Compile Include="DockPanel.cs" />
<Compile Include="Expander.cs" />
<Compile Include="Generators\ItemContainerInfo.cs" />
<Compile Include="Generators\MenuItemContainerGenerator.cs" />
<Compile Include="Generators\TreeContainerIndex.cs" />
<Compile Include="HotkeyManager.cs" />
<Compile Include="IApplicationLifecycle.cs" />

27
src/Avalonia.Controls/Generators/MenuItemContainerGenerator.cs

@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Avalonia.Controls.Generators
{
public class MenuItemContainerGenerator : ItemContainerGenerator<MenuItem>
{
/// <summary>
/// Initializes a new instance of the <see cref="ItemContainerGenerator{T}"/> class.
/// </summary>
/// <param name="owner">The owner control.</param>
public MenuItemContainerGenerator(IControl owner)
: base(owner, MenuItem.HeaderProperty, null)
{
}
/// <inheritdoc/>
protected override IControl CreateContainer(object item)
{
var separator = item as Separator;
return separator != null ? separator : base.CreateContainer(item);
}
}
}

2
src/Avalonia.Controls/MenuItem.cs

@ -208,7 +208,7 @@ namespace Avalonia.Controls
/// <inheritdoc/>
protected override IItemContainerGenerator CreateItemContainerGenerator()
{
return new ItemContainerGenerator<MenuItem>(this, MenuItem.HeaderProperty, null);
return new MenuItemContainerGenerator(this);
}
/// <summary>

Loading…
Cancel
Save