2009-07-26 6 views
1

Alles, was ich tun wollte, ist ein ContextMenu auf einem Button mit der Breite, die an die Breite Button gebunden ist. Anscheinend ist das zu viel. Wenn Sie das ContextMenu öffnen und dann die Größe des Button verringern und es wieder öffnen, ist alles OK (das Width wird kleiner). Wenn Sie den Wert Width (von 100 auf 200 zum Beispiel) erhöhen, erhöht sich auch der ContextMenuWidth (auf 200), aber es gibt nur den vorherigen Width (100) wieder. Ich habe die Width mich selbst in Code geändert, ActualWidth statt verwendet, aber obwohl die Werte gut scheinen, ist das Rendern des Kontextmenüs schlecht.Ändern der Breite des Kontextmenüs führt zu schlechtem Rendering

+0

Ich habe alles versucht, worüber ich nachdenken kann, sogar benutze ScaleTransform, aber nichts funktioniert. Ich denke, es ist wahrscheinlich ein Fehler, dem niemand begegnet ist, weil niemand die Größe der Kontextmenüs ändert. –

Antwort

0

Nicht sicher, ob das zutrifft, aber haben Sie die Möglichkeit, die SnapToDevicePixels=True zu verwenden? Ich habe festgestellt, dass dies einen großen Unterschied im Rendering macht, wenn es nicht verwendet wird ... aber ich bin mir nicht sicher, ob die Option in Ihrem Kontextmenü verfügbar ist.

+0

Ich habe die Option, aber es hat keine Auswirkungen. Ich habe auch versucht, ItemsPanelTemplate zu ersetzen, aber es hat nur einen Teil des ContextMenu gerendert –

1

Die Breite des Kontextmenüs scheint von der Textfeldlänge des Kontextelements mit dem längsten Textfeld abhängig zu sein.

Wenn Sie eine Menge Leerzeichen an eines der Textfelder des Kontextelements anhängen, werden sowohl das Kontextelement als auch das gesamte Kontextmenü breiter.

Alles dann zieht gut.

Hoffe, das hilft.