Browse Source

Merge pull request #5200 from donandren/issues/contextmenuopen

Fix ContextMenu Open
pull/5283/head
Max Katz 6 years ago
committed by GitHub
parent
commit
7356506d64
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      src/Avalonia.Controls/ContextMenu.cs
  2. 49
      tests/Avalonia.Controls.UnitTests/ContextMenuTests.cs

2
src/Avalonia.Controls/ContextMenu.cs

@ -246,7 +246,7 @@ namespace Avalonia.Controls
/// <summary>
/// Opens the menu.
/// </summary>
public override void Open() => throw new NotSupportedException();
public override void Open() => Open(null);
/// <summary>
/// Opens a context menu on the specified control.

49
tests/Avalonia.Controls.UnitTests/ContextMenuTests.cs

@ -44,6 +44,55 @@ namespace Avalonia.Controls.UnitTests
}
}
[Fact]
public void Open_Should_Use_Default_Control()
{
using (Application())
{
var sut = new ContextMenu();
var target = new Panel
{
ContextMenu = sut
};
var window = new Window { Content = target };
window.ApplyTemplate();
window.Presenter.ApplyTemplate();
bool opened = false;
sut.MenuOpened += (sender, args) =>
{
opened = true;
};
sut.Open();
Assert.True(opened);
}
}
[Fact]
public void Open_Should_Raise_Exception_If_AlreadyDetached()
{
using (Application())
{
var sut = new ContextMenu();
var target = new Panel
{
ContextMenu = sut
};
var window = new Window { Content = target };
window.ApplyTemplate();
window.Presenter.ApplyTemplate();
target.ContextMenu = null;
Assert.ThrowsAny<Exception>(()=> sut.Open());
}
}
[Fact]
public void Closing_Raises_Single_Closed_Event()
{

Loading…
Cancel
Save