如何处理将放大镜功能放到我的Silverlight应用程序上的要求?
这并不像人们想象的那么容易。
之前的程序员做到了,并认为它看起来很酷。
它通过操纵缩放操作来工作。它与浏览器中的缩放功能非常相似。
无论如何,在我的程序中,它需要我更改某些对象的Z级别,以便它们出现在窗口中的其他对象之上。我该怎么做?
问题是我有一个有两行的网格。当然,在XAML中,无论最后列出的是什么,都会出现在XAML页面顶部描述的任何内容的“顶部”。这有意义吗?如果网格顶部的组件按比例放大,则它们会隐藏在底行的后面。我不希望这样。
答案 0 :(得分:0)
您可以通过拥有两个Image对象来实现放大镜效果。第一个对象包含原始图像,第二个图像具有比例变换和应用于其的剪辑几何图形,用于模拟放大镜。然后,当鼠标移动时,您需要操纵剪辑几何图形,即图像的左右坐标。这是一些XAML代码,显示我正在谈论的效果
<Image Width="640" Height="480" Source="myImage.PNG"/>
<Image Canvas.Left="-500" Canvas.Top="-380" Width="640" Height="480" Source="myImage.PNG">
<Image.RenderTransform>
<ScaleTransform ScaleX="3" ScaleY="3"/>
</Image.RenderTransform>
<Image.Clip>
<EllipseGeometry RadiusX="40" RadiusY="40" Center="320, 240"/>
</Image.Clip>
</Image>
另外,如果这还不够,here is a tutorial关于如何做放大镜效果。这是yet another tutorial。