5 changed files with 127 additions and 5 deletions
@ -0,0 +1,58 @@ |
|||||
|
using Avalonia.Input; |
||||
|
using Avalonia.Interactivity; |
||||
|
|
||||
|
#nullable enable |
||||
|
|
||||
|
namespace Avalonia.Controls |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Provides event data for the ContextRequested event.
|
||||
|
/// </summary>
|
||||
|
public class ContextRequestedEventArgs : RoutedEventArgs |
||||
|
{ |
||||
|
private readonly PointerEventArgs? _pointerEventArgs; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the ContextRequestedEventArgs class.
|
||||
|
/// </summary>
|
||||
|
public ContextRequestedEventArgs() |
||||
|
: base(Control.ContextRequestedEvent) |
||||
|
{ |
||||
|
|
||||
|
} |
||||
|
|
||||
|
/// <inheritdoc cref="ContextRequestedEventArgs()" />
|
||||
|
public ContextRequestedEventArgs(PointerEventArgs pointerEventArgs) |
||||
|
: this() |
||||
|
{ |
||||
|
_pointerEventArgs = pointerEventArgs; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets the x- and y-coordinates of the pointer position, optionally evaluated against a coordinate origin of a supplied <see cref="Control"/>.
|
||||
|
/// </summary>
|
||||
|
/// <param name="relativeTo">
|
||||
|
/// Any <see cref="Control"/>-derived object that is connected to the same object tree.
|
||||
|
/// To specify the object relative to the overall coordinate system, use a relativeTo value of null.
|
||||
|
/// </param>
|
||||
|
/// <param name="point">
|
||||
|
/// A <see cref="Point"/> that represents the current x- and y-coordinates of the mouse pointer position.
|
||||
|
/// If null was passed as relativeTo, this coordinate is for the overall window.
|
||||
|
/// If a relativeTo value other than null was passed, this coordinate is relative to the object referenced by relativeTo.
|
||||
|
/// </param>
|
||||
|
/// <returns>
|
||||
|
/// true if the context request was initiated by a pointer device; otherwise, false.
|
||||
|
/// </returns>
|
||||
|
public bool TryGetPosition(Control? relativeTo, out Point point) |
||||
|
{ |
||||
|
if (_pointerEventArgs is null) |
||||
|
{ |
||||
|
point = default; |
||||
|
return false; |
||||
|
} |
||||
|
|
||||
|
point = _pointerEventArgs.GetPosition(relativeTo); |
||||
|
return true; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue