Ich habe eine Anwendung, wo das gesamte Fenster skaliert wird, wenn ein Benutzer die Größe des Fensters ändert. Dies ist der Code, dies zu tun:ScaleTransform skaliert ContextMenu teilweise
ContentDesktop.LayoutTransform = new ScaleTransform(scale, scale);
Jetzt brauchte ich einen Button mit einem ContextMenu, und das Menü soll als das Anwendungsfenster skalieren. Um dies zu tun, gebunden ich die Render des ContextMenu auf die Scaletransform des Button:
<Button.RenderTransform>
<ScaleTransform ScaleX="{Binding ScaleFactor}" ScaleY="{Binding ScaleFactor}"/>
</Button.RenderTransform>
<Button.ContextMenu>
<ContextMenu RenderTransform="{Binding RelativeSource={RelativeSource Self}, Path=PlacementTarget.RenderTransform}">
<MenuItem Header="Item 1"/>
<MenuItem Header="Item 2 wwww aaaa ssss iiii"/>
</ContextMenu>
</Button.ContextMenu>
Der Text des MenuItems jetzt skaliert, aber für größere Skalierungsfaktoren (> 1.2) nur einen Teil des ContextMenu gezeigt . Der rechte und der untere Teil fehlen. Als ob jemand es abschneiden würde. Aber wenn ich die Größe (Breite, Höhe) überprüfe, ist das ContextMenu größer als gemalt.
Jemand hat eine Idee, was das sein könnte?