UIElement.ContextCanceled Kejadian
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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.
<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.