Auf Englisch lesen

Freigeben über


FrameworkContentElement.ContextMenuClosing Ereignis

Definition

Tritt unmittelbar vor dem Schließen eines Kontextmenüs für ein Element auf.

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

Ereignistyp

Beispiele

Im folgenden Beispiel wird ein Handler implementiert, der den Cursor über einen benannten Bereich DisplayArea ändert (nicht dargestellt). Der Kommentar weist auf eine UIElement Verwendung hin, aber in der Tat wäre dieses Beispiel identisch, wenn DisplayArea ein FrameworkContentElementwäre.

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;
        }
    }
}

Hinweise

Um schließende Kontextmenüs zu unterdrücken, sollten Handler des Ereignisses es als behandelt markieren.

Um dieses Ereignis als in EventTrigger einem Stil zu verwenden, müssen Sie auf den zugrunde liegenden Dienstereignisbezeichner verweisen:

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

(Diese Verwendung ist erforderlich, da die Ereignisimplementierung für FrameworkContentElement , die das zugrunde liegende Dienstereignis verfügbar macht, den Bezeichner für die ContextMenuClosing Verwendung in Triggern nicht ordnungsgemäß zuordnen kann.)

Informationen zum Routingereignis

Bezeichnerfeld ContextMenuClosingEvent
Routingstrategie Bubbling
Delegat ContextMenuEventHandler

Gilt für:

Produkt Versionen
.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

Weitere Informationen