Silverlight4Toolkit提供的ContextMenu工作得很好,直到我在我的XAML中实现了一个<RenderTransform>标记,以便让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位置,但它显示在应用程序的最顶端。它的buggy也很多,我必须不断点击才能让它消失,我不能在其他地方右击来再次打开它,而且它不能随着应用程序的其余部分进行缩放。
这可能是什么原因造成的?有没有正确的方法来解决这个问题,或者我应该只对菜单应用一个偏移量来将其移动到鼠标上?
发布于 2011-04-26 06:56:23
您将需要通过缩放转换的逆值传递光标坐标,以将屏幕点转换为您的应用程序可以理解的点。
https://stackoverflow.com/questions/5784134
复制相似问题