【发布时间】:2014-02-02 11:57:08
【问题描述】:
据我了解,与旧的 Windows 窗体应用程序不同,WPF 应用程序中的控件不绑定到系统“窗口”资源(例如,您无法使用 Spy++ 找到它们的句柄)。
那么,这些菜单的一部分怎么可能显示在在父窗口之外? 为什么不一到达窗口边框就剪掉?
当然,一种可能性是它们不是真正的 WPF 菜单,而是标准的 Windows 资源。然而,这与我可以像任何其他 WPF 控件一样设置其中一个菜单的样式这一事实相冲突,并且快速查看系统消息日志似乎可以确认,据 Windows 所知 它们实际上是,具有相同句柄的完全相同的资源。
然后,我走得更远。我对菜单应用了旋转:
<Style TargetType="{x:Type ContextMenu}">
<Setter Property="RenderTransformOrigin" Value="0.5,0.5" />
<Setter Property="RenderTransform">
<Setter.Value>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform Angle="-18.435"/>
<TranslateTransform/>
</TransformGroup>
</Setter.Value>
</Setter>
</Style>
这是一个相当有趣的结果:
那么,发生了什么事?
【问题讨论】:
-
仅供参考:这也适用于展开时的组合框。