UIElement.ContextCanceled Ereignis

Definition

Tritt auf, wenn eine Kontexteingabegeste in eine Manipulationsgeste fortgesetzt wird, um das Element zu benachrichtigen, dass das Kontextflyout nicht geöffnet werden soll.

// Register
event_token ContextCanceled(TypedEventHandler<UIElement, RoutedEventArgs const&> const& handler) const;

// Revoke with event_token
void ContextCanceled(event_token const* cookie) const;

// Revoke with event_revoker
UIElement::ContextCanceled_revoker ContextCanceled(auto_revoke_t, TypedEventHandler<UIElement, RoutedEventArgs const&> const& handler) const;
public event TypedEventHandler<UIElement,RoutedEventArgs> ContextCanceled;
function onContextCanceled(eventArgs) { /* Your code */ }
uIElement.addEventListener("contextcanceled", onContextCanceled);
uIElement.removeEventListener("contextcanceled", onContextCanceled);
- or -
uIElement.oncontextcanceled = onContextCanceled;
Public Custom Event ContextCanceled As TypedEventHandler(Of UIElement, RoutedEventArgs) 
<uiElement ContextCanceled="eventhandler"/>

Ereignistyp

Beispiele

In diesem Beispiel wird gezeigt, wie Sie ein Kontextmenü ein- und ausblenden, wenn der Benutzer mit der rechten Maustaste klickt oder eine entsprechende Aktion ausführt. Das Kontextmenü bietet die Optionen Rot und Grün und wird auf einem Rechteck platziert.

Ein Kontextmenü mit den Optionen rot und grün
<Page
    ...>
    <Page.Resources>
        <MenuFlyout x:Key="colorMenuFlyout">
            <MenuFlyoutItem Text="Red" Tag="red" Click="MenuFlyoutItem_Click"/>
            <MenuFlyoutItem Text="Green" Tag="green" Click="MenuFlyoutItem_Click"/>
        </MenuFlyout>
    </Page.Resources>

    <Grid>
        <Rectangle Width="100" Height="100" Fill="Yellow"
                   ContextRequested="Color_ContextRequested" 
                   ContextCanceled="Color_ContextCanceled">
        </Rectangle>
    </Grid>
</Page>
public sealed partial class MainPage : Page
{
    MenuFlyout colorMenuFlyout;

    public MainPage()
    {
        this.InitializeComponent();

        colorMenuFlyout = Resources["colorMenuFlyout"] as MenuFlyout;
    }

    private void Color_ContextRequested(UIElement sender, ContextRequestedEventArgs args)
    {
        var point = new Point(0,0);

        if (args.TryGetPosition(sender, out point))
        {
            colorMenuFlyout.ShowAt(sender, point);
        }
        else
        {
            colorMenuFlyout.ShowAt((FrameworkElement)sender);
        }
    }

    private void Color_ContextCanceled(UIElement sender, RoutedEventArgs args)
    {
        colorMenuFlyout.Hide();
    }

    private void MenuFlyoutItem_Click(object sender, RoutedEventArgs e)
    {
        var item = sender as MenuFlyoutItem;
        var target = colorMenuFlyout.Target;
        if (string.Equals(item.Tag.ToString(), "red"))
        {
            ((Rectangle)target).Fill = new SolidColorBrush(Windows.UI.Colors.Red);
        }
        else if (string.Equals(item.Tag.ToString(), "green"))
        {
            ((Rectangle)target).Fill = new SolidColorBrush(Windows.UI.Colors.Green);
        }
    }
}

Hinweise

Es wird empfohlen, die ContextFlyout-Eigenschaft so festzulegen, dass einem Element ein Kontextmenü hinzugefügt wird. Wenn ContextFlyout festgelegt wird, wird das Kontextmenü automatisch angezeigt und ausgeblendet. Sie sollten nur behandeln ContextRequested und ContextCanceled wenn Sie nicht festgelegt ContextFlyoutsind.

Wenn Sie das ContextRequested-Ereignis behandeln, um das Kontext-Flyout anzuzeigen, sollten Sie dieses Ereignis auch behandeln, um das Flyout auszublenden, wenn die Anforderung abgebrochen wird.

In der Regel behandeln Sie dieses Ereignis für Elemente, die durch Ziehen und Ablegen bearbeitet werden können. Dieses Ereignis wird ausgelöst, wenn ein ContextRequested-Ereignis ausgelöst wurde, das Element jedoch kein PointerReleased-Ereignis empfangen hat, bevor eine Manipulation beginnt. Dies gibt an, dass der Benutzer eine Manipulation anstelle eines Kontext-Flyouts aufrufen soll, sodass das Kontext-Flyout nicht geöffnet werden sollte.

ContextCanceled ist ein Routingereignis. Weitere Informationen zum Routingereigniskonzept finden Sie unter "Ereignisse und Routingereignisse".

Gilt für:

Weitere Informationen