0
的文本菜单(以下this小教程)伟大的工作,直到我才能有Silverlight应用程序的规模,以适应整个浏览器窗口中实现的
标签在我的XAMLSilverlight 4的文本菜单,并通过Silverlight 4的工具包提供ScaleTransform<RenderTransform
>
当所有伟大的工作,本教程之前,我的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位置,但它显示在应用程序的最顶端。这也是非常麻烦的,我必须不断点击才能让它消失,我不能右键点击其他地方再次启动它,并且它不会随着应用程序的其他部分一起扩展。
什么可能导致这种情况?有没有一种正确的方法去解决这个问题,或者我应该在菜单上应用一个偏移量来将它移动到鼠标上?
我不知道我明白。像这样? http://pastebin.com/EisCLd5B – Jesse 2011-04-25 23:01:10
@Jesse - 我还没有检查你的代码,但如果你的比例变换是'x * 2'和'y * 3'我想你需要缩放鼠标坐标由'x/2'和'y/3'。 – ChrisF 2011-04-26 12:16:27