gpt4 book ai didi

c# - ScaleTransform 部分缩放 ContextMenu

转载 作者:行者123 更新时间:2023-11-30 23:19:13 25 4
gpt4 key购买 nike

我有一个应用程序,如果用户调整窗口大小,整个窗口都会缩放。这是执行此操作的代码:

 ContentDesktop.LayoutTransform = new ScaleTransform(scale, scale);

现在我需要一个带有 ContextMenu 的按钮,并且这个菜单应该像应用程序窗口一样缩放。为此,我将 ContextMenu 的 RenderTransform 绑定(bind)到 Button 的 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 LayoutTransform="{Binding ...}">

LayoutTransform:在布局过程之前应用的转换。所以 FrameworkElement 得到在更大的计划中重新安排。

RenderTransform:布局过程完成后应用的变换。ContextMenu 生成一个新的 Window,但它的边界保留在转换之前并切断视觉。

关于c# - ScaleTransform 部分缩放 ContextMenu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40407169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com