UIElement.ContextCanceled Событие
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Происходит, когда жест ввода контекста продолжается в жесте манипуляции, чтобы уведомить элемент о том, что всплывающий элемент контекста не должен быть открыт.
// 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"/>
Тип события
Примеры
В этом примере показано, как отобразить и скрыть контекстное меню, когда пользователь щелкает правой кнопкой мыши или выполняет эквивалентное действие. Контекстное меню предлагает параметры "Красный" и "Зеленый" и помещается в прямоугольник.
<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);
}
}
}
Комментарии
Мы рекомендуем задать свойство ContextFlyout , чтобы добавить контекстное меню в элемент. При ContextFlyout установке контекстное меню отображается и скрыто автоматически. Следует обрабатывать ContextRequested только в ContextCanceled том случае, если не задано.ContextFlyout
Если вы обрабатываете событие ContextRequested для отображения всплывающего элемента контекста, необходимо также обработать это событие, чтобы скрыть всплывающее меню, если запрос отменен.
Обычно это событие обрабатывается для элементов, которые можно управлять перетаскиванием. Это событие возникает при возникновении события ContextRequested , но элемент не получил событие PointerReleased до начала манипуляции. Это означает, что пользователь намерен вызывать манипуляцию, а не всплывающий элемент контекста, поэтому всплывающий элемент контекста не должен быть открыт.
ContextCanceled — это перенаправленное событие. Дополнительные сведения о концепции перенаправленного события см. в разделе "События" и обзор перенаправленных событий.