Bagikan melalui


UIElement.ContextCanceled Kejadian

Definisi

Terjadi ketika gerakan input konteks berlanjut ke dalam gerakan manipulasi, untuk memberi tahu elemen bahwa flyout konteks tidak boleh dibuka.

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

Jenis Acara

Persyaratan Windows

Rangkaian perangkat
Windows 10 Anniversary Edition (diperkenalkan dalam 10.0.14393.0)
API contract
Windows.Foundation.UniversalApiContract (diperkenalkan dalam v3.0)

Contoh

Contoh ini menunjukkan cara menampilkan dan menyembunyikan menu konteks saat pengguna mengklik kanan atau melakukan tindakan yang setara. Menu konteks menawarkan opsi Merah dan Hijau dan ditempatkan pada persegi panjang.

Menu konteks memperlihatkan opsi merah dan hijau
<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);
        }
    }
}

Keterangan

Kami menyarankan Anda mengatur properti ContextFlyout untuk menambahkan menu konteks ke elemen. Saat ContextFlyout diatur, menu konteks ditampilkan dan disembunyikan secara otomatis. Anda seharusnya hanya menangani ContextRequested dan ContextCanceled jika Anda tidak mengatur ContextFlyout.

Jika Anda menangani peristiwa ContextRequested untuk menampilkan flyout konteks, Anda juga harus menangani peristiwa ini untuk menyembunyikan flyout jika permintaan dibatalkan.

Anda biasanya menangani peristiwa ini untuk elemen yang dapat dimanipulasi dengan seret dan letakkan. Peristiwa ini dimunculkan ketika peristiwa ContextRequested telah dinaikkan, tetapi elemen belum menerima peristiwa PointerReleased sebelum manipulasi dimulai. Ini menunjukkan bahwa pengguna dimaksudkan untuk memanggil manipulasi daripada flyout konteks, sehingga flyout konteks tidak boleh dibuka.

ContextCanceled adalah peristiwa yang dirutekan. Untuk informasi selengkapnya tentang konsep peristiwa yang dirutekan, lihat Gambaran umum peristiwa dan peristiwa yang dirutekan.

Berlaku untuk

Lihat juga