WpfToolkit AutoCompleteBox ContextMenu funktioniert nicht

9

In einem meiner WPF-Projekte habe ich die AutoCompleteBox -Kontrolle von WPF Toolkit integriert. Ich brauche ein benutzerdefiniertes Context Menu für dieses Steuerelement und ich habe eines mit der ContextMenu -Eigenschaft hinzugefügt. Leider zeigt es nicht den benutzerdefinierten, sondern den Standard-Schnittpunkt (d. H. Ausschneiden, Kopieren, Einfügen mit Ausschneiden und Kopieren als deaktiviert).

Um das Problem neu zu erstellen, habe ich ein Beispielprojekt erstellt und das Fenster enthält 2 Steuerelemente in einem Grid .

%Vor%

Die beiden Steuerelemente haben die gleiche ContextMenu und wenn ich die Lösung starte, kann ich sehen, dass die benutzerdefinierte ContextMenu für TextBox und nicht für AutoCompleteBox funktioniert.

Außerdem setze ich das gleiche Kontextmenü auf Grid (übergeordnetes Steuerelement) und setze ContextMenu="{x:Null}" auf TextBox & amp; %Code%. Jetzt ist AutoCompleteBox für ContextMenu vererbt, aber nicht für TextBox .

Meine Frage ist also, wie kann ich eine benutzerdefinierte AutoCompleteBox für AutoCompleteBox erstellen? Wenn es nicht von Entwurf ( ContextMenu ) ist, wie kann ich ein AutoCompleteBox zu einem benutzerdefinierten AutoCompleteBox-Steuerelement hinzufügen, das von ContextMenu geerbt wird. Bitte um Rat.

    
Dennis 21.10.2013, 07:50
quelle

2 Antworten

1

AutoCompleteBox macht dependency property TextBoxStyle verfügbar, was Sie set to customize TextBox hosted inside AutoCompleteBox können.

Ein anderer Ansatz wäre, Ihre eigene Vorlage bereitzustellen, der ich mich stark widersetzen würde, da diese DP explizit für den von Ihnen gewünschten Zweck bereitgestellt wird, d. h. um textBox von außen anzupassen.

Erstellen Sie einen Stil für TextBox mit Ihrem benutzerdefinierten ContextMenu und wenden Sie diese Vorlage sowohl auf Ihre TextBox als auch auf Ihre AutoCompleteBox an . Dieses Beispiel funktioniert gut -

%Vor%     
Rohit Vats 27.10.2013, 08:13
quelle
0

Das Problem mit Toolkits AutoCompleteBox besteht darin, dass sie es versäumt haben, das ContextMenu an die inneren Elemente seiner visuellen Struktur zu übergeben. Ich habe die Vorlage von AutoCompleteBox bearbeitet. Es funktioniert gut, wenn ich TemplateBinding zwischen ContextMenu von AutoCompleteBox und ContextMenu von TextBox innerhalb der Vorlage von AutoCompleteBox hinzufüge.

Bitte finden Sie den Code fix:

%Vor%

Grüße, Abdul Rahman A.H.

    
Abdul Rahman A.H. 25.10.2013 05:03
quelle

Tags und Links