Browse Source

Merge pull request #10020 from workgroupengineering/features/MenuFlyout/ItemContainerTheme

feat(MenuFlyout):  Add ItemContainerTheme
pull/10090/head
Max Katz 4 years ago
committed by GitHub
parent
commit
30d464439e
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 19
      src/Avalonia.Controls/Flyouts/MenuFlyout.cs
  2. 1
      src/Avalonia.Controls/Flyouts/MenuFlyoutPresenter.cs

19
src/Avalonia.Controls/Flyouts/MenuFlyout.cs

@ -3,6 +3,7 @@ using Avalonia.Collections;
using Avalonia.Controls.Primitives;
using Avalonia.Controls.Templates;
using Avalonia.Metadata;
using Avalonia.Styling;
namespace Avalonia.Controls
{
@ -27,6 +28,12 @@ namespace Avalonia.Controls
AvaloniaProperty.RegisterDirect<MenuFlyout, IDataTemplate?>(nameof(ItemTemplate),
x => x.ItemTemplate, (x, v) => x.ItemTemplate = v);
/// <summary>
/// Defines the <see cref="ItemContainerTheme"/> property.
/// </summary>
public static readonly StyledProperty<ControlTheme?> ItemContainerThemeProperty =
ItemsControl.ItemContainerThemeProperty.AddOwner<MenuFlyout>();
public Classes FlyoutPresenterClasses => _classes ??= new Classes();
/// <summary>
@ -48,6 +55,15 @@ namespace Avalonia.Controls
set => SetAndRaise(ItemTemplateProperty, ref _itemTemplate, value);
}
/// <summary>
/// Gets or sets the <see cref="ControlTheme"/> that is applied to the container element generated for each item.
/// </summary>
public ControlTheme? ItemContainerTheme
{
get { return GetValue(ItemContainerThemeProperty); }
set { SetValue(ItemContainerThemeProperty, value); }
}
private Classes? _classes;
private IEnumerable? _items;
private IDataTemplate? _itemTemplate;
@ -57,7 +73,8 @@ namespace Avalonia.Controls
return new MenuFlyoutPresenter
{
[!ItemsControl.ItemsProperty] = this[!ItemsProperty],
[!ItemsControl.ItemTemplateProperty] = this[!ItemTemplateProperty]
[!ItemsControl.ItemTemplateProperty] = this[!ItemTemplateProperty],
[!ItemsControl.ItemContainerThemeProperty] = this[!ItemContainerThemeProperty],
};
}

1
src/Avalonia.Controls/Flyouts/MenuFlyoutPresenter.cs

@ -1,5 +1,4 @@
using System;
using Avalonia.Controls.Generators;
using Avalonia.Controls.Platform;
using Avalonia.Controls.Primitives;
using Avalonia.LogicalTree;

Loading…
Cancel
Save