Warum nicht das Kontext-Menü(popup-Menü) angezeigt?

Die folgende Klasse leitet sich von System.Windows.Controls.UserControl. In der besagten Klasse nenne ich OpenFileDialog zum öffnen einer XAML-Datei (workflow-Datei). Als Nächstes implementiere ich ein dynamisches Menü beim Rechtsklick mit der Maus. Das Menü wird nicht angezeigt. Dies ist ein threading-problem, oder ein UI-problem? In meiner Forschung, die ich habe nicht in der Lage zu entdecken, eine Lösung.

Vielen Dank im Voraus.

private void File_Open_Click(object sender, RoutedEventArgs e)
{
    var fileDialog = new OpenFileDialog();

    fileDialog.Title  = "Open Workflow";
    fileDialog.Filter = "Workflow| *.xaml";

    if (fileDialog.ShowDialog() == DialogResult.OK)
    {
        LoadWorkflow(fileDialog.FileName);
        MouseDown += new System.Windows.Input.MouseButtonEventHandler(mouseClickedResponse);
     }
}

private void mouseClickedResponse(object sender, System.Windows.Input.MouseEventArgs e)
{
    if (e.RightButton == MouseButtonState.Pressed)
    {
         LoadMenuItems();
    }
}

private void LoadMenuItems()
{
    System.Windows.Controls.ContextMenu contextmenu = new System.Windows.Controls.ContextMenu();   
    System.Windows.Controls.MenuItem item1 = new System.Windows.Controls.MenuItem();
    item1.Header = "A new Test";
    contextmenu.Items.Add(item1);
    this.ContextMenu = contextmenu;
    this.ContextMenu.Visibility = Visibility.Visible;
}
Sie haben zum hinzufügen ContextMenu, bevor Sie klicken. Die ContextMenu verwendet, was auch immer Sie binden es als PlacementTarget. Kontextmenüs ausgelöst werden, auf das klicken, nicht nach dem klicken, das ist der Grund, warum nichts angezeigt wird. Man könnte immer nur den Kontext-Menü, dann setzen Sie das Benutzersteuerelement.ContextMenu-Wert IsEnabled auf false, bis Sie es haben wollen angeklickt werden.
Bob ist richtig, das Kontext-Menü hat gebunden zu sein, auf einige übergeordnete Steuerung (common Verhalten mit wpf/xaml), Sie sind nicht auf win forms, denke ich, mit wpf-führen Sie das Kontext-Menü definiert werden, bevor!
vielen Dank für Ihre Antwort.Ich habe versucht, Ihre Lösungen und es hat nicht funktioniert.
Sie versucht genau dies: die Definition eines ContextMenu-Verwendung von xaml in WPF Ui-code-Datei (nicht code-behind-Datei *.cs): msdn.microsoft.com/de-de/library/... an der Unterseite befindet sich einige Beispiel-code gezeigt, die direkt gilt, die these von Bob und mir. Wenn Sie Ihre aktuelle versuchen nicht geklappt zu - können Sie bitte geben Sie Ihren xaml-code?
Sie werden mir helfen, und danke dir dafür. Ich zog die contextmenu-Einstellung bevor Sie klicken, und jetzt sehe ich das Kontext-Menü. Aber das Kontext-Menü erscheint nur in 2 von den drei Fenstern der Benutzeroberfläche. Erstelle ich ein WorkflowDesigner und das öffnet einen Bildschirm (Fenster) durch drei Bereiche. Die activityBuilder Bereich ist derjenige, der das Kontext-Menü nicht angezeigt. Auch glaube ich nicht anythin in meinem Xaml-über das Kontext-Menü und nur durch ading das contextMenu auf, bevor Sie auf, ich kann es sehen. So, dachte, ich erwähne das . Nochmals vielen Dank

InformationsquelleAutor user1298925 | 2012-08-23

Schreibe einen Kommentar