FrameworkContentElement.ContextMenuClosing Zdarzenie

Definicja

Występuje tuż przed zamknięciem dowolnego menu kontekstowego elementu.

C#
public event System.Windows.Controls.ContextMenuEventHandler ContextMenuClosing;

Typ zdarzenia

Przykłady

Poniższy przykład implementuje procedurę obsługi, która zmienia kursor nad nazwanym regionem DisplayArea (nie jest pokazana). Komentarz wskazuje użycie UIElement , ale w rzeczywistości ta próbka byłaby taka sama, gdyby DisplayArea była to FrameworkContentElement.

C#
private void CursorTypeChanged(object sender, SelectionChangedEventArgs e)
{
    ComboBox source = e.Source as ComboBox;

    if (source != null)
    {
        ComboBoxItem selectedCursor = source.SelectedItem as ComboBoxItem;

        // Changing the cursor of the Border control 
        // by setting the Cursor property
        switch (selectedCursor.Content.ToString())
        {
            case "AppStarting":
                DisplayArea.Cursor = Cursors.AppStarting;
                break;
            case "ArrowCD":                        
                DisplayArea.Cursor = Cursors.ArrowCD;
                break;
            case "Arrow":
                DisplayArea.Cursor = Cursors.Arrow;
                break;
            case "Cross":
                DisplayArea.Cursor = Cursors.Cross;
                break;
            case "HandCursor":
                DisplayArea.Cursor = Cursors.Hand;
                break;
            case "Help":
                DisplayArea.Cursor = Cursors.Help;
                break;
            case "IBeam":
                DisplayArea.Cursor = Cursors.IBeam;
                break;
            case "No":
                DisplayArea.Cursor = Cursors.No;
                break;
            case "None":
                DisplayArea.Cursor = Cursors.None;
                break;
            case "Pen":
                DisplayArea.Cursor = Cursors.Pen;
                break;
            case "ScrollSE":
                DisplayArea.Cursor = Cursors.ScrollSE;
                break;
            case "ScrollWE":
                DisplayArea.Cursor = Cursors.ScrollWE;
                break;
            case "SizeAll":
                DisplayArea.Cursor = Cursors.SizeAll;
                break;
            case "SizeNESW":
                DisplayArea.Cursor = Cursors.SizeNESW;
                break;
            case "SizeNS":
                DisplayArea.Cursor = Cursors.SizeNS;
                break;
            case "SizeNWSE":
                DisplayArea.Cursor = Cursors.SizeNWSE;
                break;
            case "SizeWE":
                DisplayArea.Cursor = Cursors.SizeWE;
                break;
            case "UpArrow":
                DisplayArea.Cursor = Cursors.UpArrow;
                break;
            case "WaitCursor":
                DisplayArea.Cursor = Cursors.Wait;
                break;
            case "Custom":
                DisplayArea.Cursor = CustomCursor;
                break;
            default:
                break;
        }

        // If the cursor scope is set to the entire application
        // Use OverrideCursor to force the cursor for all elements
        if (!cursorScopeElementOnly)
        {
            Mouse.OverrideCursor = DisplayArea.Cursor;
        }
    }
}

Uwagi

Aby pominąć zamykające menu kontekstowe, programy obsługi zdarzenia powinny oznaczyć je jako obsługiwane.

Aby użyć tego zdarzenia jako EventTrigger stylu, należy odwołać się do bazowego identyfikatora zdarzenia usługi:

XAML
<EventTrigger RoutedEvent="ContextMenuService.ContextMenuClosing">
  <!-- storyboard here ... -->
</EventTrigger>

(To użycie jest wymagane, ponieważ implementacja zdarzeń, która FrameworkContentElement uwidacznia bazowe zdarzenie usługi, nie mapuje poprawnie identyfikatora ContextMenuClosing do użycia w wyzwalaczach).

Informacje dotyczące kierowanego zdarzenia

Pole identyfikatora ContextMenuClosingEvent
Strategia routingu Propagacji
Delegat ContextMenuEventHandler

Dotyczy

Produkt Wersje
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Zobacz też