Skip to content

Commit

Permalink
Merge pull request #3619 from MahApps/HamburgerMenuItemStyleSelector_…
Browse files Browse the repository at this point in the history
…Changes

HamburgerMenu: Allow using own items together with the new HamburgerMenuItemStyleSelector
  • Loading branch information
punker76 committed Oct 1, 2019
2 parents 023ed5e + 36ba460 commit 7b61fe8
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ namespace MahApps.Metro.Controls
/// <summary>
/// The HamburgerMenuItem provides an implementation for HamburgerMenu entries.
/// </summary>
public class HamburgerMenuItem : HamburgerMenuItemBase, ICommandSource
public class HamburgerMenuItem : HamburgerMenuItemBase, IHamburgerMenuItem, ICommandSource
{
/// <summary>
/// Identifies the <see cref="Label"/> dependency property.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@ public override Style SelectStyle(object item, DependencyObject container)
var hamburgerMenu = listBox?.TryFindParent<HamburgerMenu>();
if (hamburgerMenu != null)
{
if (item is HamburgerMenuSeparatorItem)
if (item is IHamburgerMenuSeparatorItem)
{
if (hamburgerMenu.SeparatorItemContainerStyle != null)
{
return hamburgerMenu.SeparatorItemContainerStyle;
}
}
else if (item is HamburgerMenuItem)
else
{
var itemContainerStyle = this.IsItemOptions ? hamburgerMenu.OptionsItemContainerStyle : hamburgerMenu.ItemContainerStyle;
if (itemContainerStyle != null)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ namespace MahApps.Metro.Controls
/// <summary>
/// The HamburgerMenuSeparatorItem provides an separator based implementation for HamburgerMenu entries.
/// </summary>
public class HamburgerMenuSeparatorItem : HamburgerMenuItemBase
public class HamburgerMenuSeparatorItem : HamburgerMenuItemBase, IHamburgerMenuSeparatorItem
{
protected override Freezable CreateInstanceCore()
{
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
namespace MahApps.Metro.Controls
{
public interface IHamburgerMenuItem
{
/// <summary>
/// Gets or sets a value indicating whether this item is enabled in the user interface (UI).
/// </summary>
/// <returns>
/// true if the item is enabled; otherwise, false. The default value is true.
/// </returns>
bool IsEnabled { get; set; }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
namespace MahApps.Metro.Controls
{
public interface IHamburgerMenuSeparatorItem
{
}
}

0 comments on commit 7b61fe8

Please sign in to comment.