Browse Source

Update FlyoutPresenter/MenuFlyoutPresenter

pull/5682/head
amwx 6 years ago
parent
commit
65374ed802
  1. 29
      src/Avalonia.Controls/Flyouts/FlyoutPresenter.cs
  2. 14
      src/Avalonia.Controls/Flyouts/MenuFlyoutPresenter.cs

29
src/Avalonia.Controls/Flyouts/FlyoutPresenter.cs

@ -1,6 +1,33 @@
namespace Avalonia.Controls
using Avalonia.Controls.Primitives;
using Avalonia.Input;
using Avalonia.LogicalTree;
namespace Avalonia.Controls
{
public class FlyoutPresenter : ContentControl
{
public static readonly StyledProperty<CornerRadius> CornerRadiusProperty =
AvaloniaProperty.Register<FlyoutPresenter, CornerRadius>(nameof(CornerRadius));
public CornerRadius CornerRadius
{
get => GetValue(CornerRadiusProperty);
set => SetValue(CornerRadiusProperty, value);
}
protected override void OnKeyDown(KeyEventArgs e)
{
if (e.Key == Key.Escape)
{
var host = this.FindLogicalAncestorOfType<Popup>();
if (host != null)
{
host.IsOpen = false;
e.Handled = true;
}
}
base.OnKeyDown(e);
}
}
}

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

@ -1,4 +1,5 @@
using Avalonia.Controls.Generators;
using System;
using Avalonia.Controls.Generators;
using Avalonia.Controls.Platform;
using Avalonia.Controls.Primitives;
using Avalonia.LogicalTree;
@ -7,6 +8,15 @@ namespace Avalonia.Controls
{
public class MenuFlyoutPresenter : MenuBase
{
public static readonly StyledProperty<CornerRadius> CornerRadiusProperty =
AvaloniaProperty.Register<MenuFlyoutPresenter, CornerRadius>(nameof(CornerRadius));
public CornerRadius CornerRadius
{
get => GetValue(CornerRadiusProperty);
set => SetValue(CornerRadiusProperty, value);
}
public MenuFlyoutPresenter()
:base(new DefaultMenuInteractionHandler(true))
{
@ -25,7 +35,7 @@ namespace Avalonia.Controls
public override void Open()
{
//Ignore
throw new NotSupportedException("Use MenuFlyout.ShowAt(Control) instead");
}
protected override IItemContainerGenerator CreateItemContainerGenerator()

Loading…
Cancel
Save