如何处理将放大镜功能放到Silverlight应用程序上的要求?

时间:2011-07-15 21:59:19

标签: c# silverlight silverlight-4.0

如何处理将放大镜功能放到我的Silverlight应用程序上的要求?

这并不像人们想象的那么容易。

之前的程序员做到了,并认为它看起来很酷。

它通过操纵缩放操作来工作。它与浏览器中的缩放功能非常相似。

无论如何,在我的程序中,它需要我更改某些对象的Z级别,以便它们出现在窗口中的其他对象之上。我该怎么做?

问题是我有一个有两行的网格。当然,在XAML中,无论最后列出的是什么,都会出现在XAML页面顶部描述的任何内容的“顶部”。这有意义吗?如果网格顶部的组件按比例放大,则它们会隐藏在底行的后面。我不希望这样。

1 个答案:

答案 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