Condividi tramite


UIElement.ContextCanceled Evento

Definizione

Si verifica quando un movimento di input del contesto continua in un movimento di manipolazione, per notificare all'elemento che il riquadro a comparsa del contesto non deve essere aperto.

// 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"/>

Tipo evento

Requisiti Windows

Famiglia di dispositivi
Windows 10 Anniversary Edition (è stato introdotto in 10.0.14393.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v3.0)

Esempio

In questo esempio viene illustrato come visualizzare e nascondere un menu di scelta rapida quando l'utente fa clic con il pulsante destro del mouse o esegue un'azione equivalente. Il menu di scelta rapida offre le opzioni Rosso e Verde ed è posizionato su un rettangolo.

Menu di scelta rapida che mostra le opzioni rosso e verde
<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)
    {
        Point 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);
        }
    }
}

Commenti

Ti consigliamo di impostare la proprietà ContextFlyout per aggiungere un menu di scelta rapida a un elemento. Quando ContextFlyout è impostato, il menu di scelta rapida viene visualizzato e nascosto automaticamente. È consigliabile gestire ContextRequested e ContextCanceled se non si imposta ContextFlyout.

Se gestisci l'evento ContextRequested per visualizzare il riquadro a comparsa del contesto, devi anche gestire questo evento per nascondere il riquadro a comparsa se la richiesta viene annullata.

Questo evento viene in genere gestito per gli elementi che possono essere modificati tramite trascinamento della selezione. Questo evento viene generato quando è stato generato un evento ContextRequested , ma l'elemento non ha ricevuto un evento PointerReleased prima dell'inizio di una manipolazione. Ciò indica che l'utente ha intenzione di richiamare una manipolazione anziché un riquadro a comparsa del contesto, quindi il riquadro a comparsa del contesto non deve essere aperto.

ContextCanceled è un evento indirizzato. Per altre info sul concetto di evento indirizzato, vedi Panoramica degli eventi e degli eventi indirizzati.

Si applica a

Vedi anche