【问题标题】:Silverlight 4 ContextMenu and ScaleTransformSilverlight 4 上下文菜单和 ScaleTransform
【发布时间】:2011-04-25 22:47:46
【问题描述】:

Silverlight 4 Toolkit 提供的 ContextMenu 运行良好,直到我实现了一个 <RenderTransform> 在我的 XAML 中添加标签,以使 Silverlight 应用程序缩放以适应整个浏览器窗口(遵循 this 小教程)

如果一切正常,在教程开始之前,我的 XAML 看起来像:

<UserControl>
    <Grid>
        <!-- Rest of app here... -->
    </Grid>
</UserControl>

现在,我的应用看起来像:

<UserControl>
    <Canvas>
        <Canvas.RenderTransform>
            <ScaleTransform [vars]></ScaleTransform>
        </Canvas.RenderTransform>
        <Grid>
            <!-- Rest of app here... -->
        </Grid>
    </Canvas>
</UserControl>

缩放效果很好,但是现在当我右键单击时,ContextMenu 没有出现在它应该出现的位置(在鼠标下)。相反,它显示在与鼠标相同的 x 位置,但显示在应用程序的最顶部。它也很麻烦,我必须不断点击才能让它消失,而且我无法右键单击其他地方再次将其调出,并且它无法与应用程序的其余部分一起扩展。

这可能是什么原因造成的?有没有正确的方法来解决这个问题,或者我应该对菜单应用偏移量以将其移动到鼠标上?

【问题讨论】:

    标签: silverlight xaml silverlight-4.0 contextmenu silverlight-toolkit


    【解决方案1】:

    您需要通过缩放变换的逆向传递光标坐标,以将屏幕点转换为您的应用程序可以理解的点。

    【讨论】:

    • @Jesse - 我还没有检查你的代码,但如果你的比例变换是 x * 2 和 y * 3 我认为你需要通过 x / 2 和 @987654324 缩放鼠标坐标@.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多