我得到了一个应用程序,如果用户调整窗口大小,整个窗口都在缩放。这是执行以下操作的代码:
ContentDesktop.LayoutTransform = new ScaleTransform(scale, scale);现在我需要一个带有ContextMenu的按钮,这个菜单应该像应用程序窗口一样缩放。为此,我将ContextMenu的ContextMenu绑定到按钮的ScaleTransform:
<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>MenuItems的文本现在正在扩展,但是对于更大的ScaleFactors (>1.2),只显示了ContextMenu的一部分。右边和底部都不见了。好像有人把它割了一样。但是当我检查尺寸(宽度、高度)时,ContextMenu就像画的一样大。
有人知道这可能是什么吗?
发布于 2016-11-03 20:34:53
试一试
<ContextMenu LayoutTransform="{Binding ...}">LayoutTransform::在布局传递之前应用的转换。因此,FrameworkElement被重新安排在更大的方案中。
RenderTransform:--在布局传递完成后应用的转换。ContextMenu生成了一个新的Window,但是它的边界从转换之前一直保持,并切断了视觉。
https://stackoverflow.com/questions/40407169
复制相似问题