In einem meiner WPF-Projekt habe ich WPF Toolkit AutoCompleteBox
Steuerelement integriert. Ich brauche eine benutzerdefinierte Context Menu
für dieses Steuerelement und ich habe eins mit der ContextMenu
Eigenschaft hinzugefügt. Leider zeigt es nicht die benutzerdefinierte erstellt, sondern zeigt die Standardvorlage (z. B. Ausschneiden, Kopieren, Einfügen mit Schnitt & Kopieren als deaktiviert).WpfToolkit AutoCompleteBox ContextMenu funktioniert nicht
Um das Problem neu zu erstellen, habe ich ein Beispielprojekt erstellt und das Fenster enthält 2 Steuerelemente in einem Grid
.
<Grid>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<toolkit:AutoCompleteBox>
<toolkit:AutoCompleteBox.ContextMenu>
<ContextMenu>
<MenuItem Header="Menu Item 1"></MenuItem>
<MenuItem Header="Menu Item 2"></MenuItem>
</ContextMenu>
</toolkit:AutoCompleteBox.ContextMenu>
</toolkit:AutoCompleteBox>
<TextBox Grid.Row="1" >
<TextBox.ContextMenu>
<ContextMenu>
<MenuItem Header="Menu Item 1"></MenuItem>
<MenuItem Header="Menu Item 2"></MenuItem>
</ContextMenu>
</TextBox.ContextMenu>
</TextBox>
</Grid>
Die beiden Kontrollen haben die gleiche ContextMenu
und wenn ich die Lösung laufen, kann ich sehen, dass die benutzerdefinierte erstellt ContextMenu
für TextBox
und nicht für AutoCompleteBox
arbeiten.
auch sicher, dass ich das gleiche Kontextmenü zu Grid (Eltern-Steuerung) und setzen ContextMenu="{x:Null}"
auf TextBox & AutoCompleteBox
. Jetzt wird die ContextMenu
für TextBox
vererbt, aber nicht für AutoCompleteBox
.
Also meine Frage ist, wie kann ich eine benutzerdefinierte ContextMenu
für AutoCompleteBox erstellen? Wenn es nicht von Entwurf ist (AutoCompleteBox
), wie kann ich ein ContextMenu
zu einem benutzerdefinierten AutoCompleteBox-Steuerelement hinzufügen, das von AutoCompleteBox
geerbt wird. Bitte Beratung.
Was möchten Sie in Ihrem Kontextmenü? Von dem, was ich sehe, erbt es die Befehle von der TextBox. Vielleicht sollten Sie Ihre eigenen implementieren. – Tico
@Dennis - Hast du meine Antwort versucht? Löst es dein Problem nicht? –