WEB开发网
开发学院图形图像Flash Silverlight 2 转换和剪辑区域 阅读

Silverlight 2 转换和剪辑区域

 2009-02-09 11:52:17 来源:WEB开发网   
核心提示: ZoomCanvas 通常对用户是隐藏的,但按下鼠标左键时,Silverlight 2 转换和剪辑区域(3),OnMouseLeftButtonDown(请参见图 3)会切换其 Visibility 属性,使 ZoomCanvas 变为可见,您可以通过修改 EllipseGeometry

ZoomCanvas 通常对用户是隐藏的,但按下鼠标左键时,OnMouseLeftButtonDown(请参见图 3)会切换其 Visibility 属性,使 ZoomCanvas 变为可见。ZoomCanvas 在其整体中始终不可见。但是,它的 Clip 属性会使用 EllipseGeometry 进行初始化,这会将内容呈现在一个正圆中并显示为一个放大镜(无论从哪方面看)。您可以通过修改 EllipseGeometry 的 RadiusX 和 RadiusY 属性来更改放大镜(实际上是剪辑区域)的大小。如果执行此操作,可能还需要修改 EllipseGeometry 的属性 LensBorder 以使其匹配(EllipseGeometry 使用它在放大镜周围绘制边界)。

Silverlight 2 转换和剪辑区域图 3 Page.xaml.cs

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
namespace Magnifier
{
  public partial class Page : UserControl
  {
    private bool _dragging = false;
    private const double _scale = 4.0;
    public Page()
    {
      InitializeComponent();
    }
    private void OnMouseLeftButtonDown(object sender,
      MouseButtonEventArgs e)
    {
      double x = e.GetPosition(RootCanvas).X;
      double y = e.GetPosition(RootCanvas).Y;
      PositionLens(x, y);
      ZoomCanvas.Visibility = Visibility.Visible;
      ((FrameworkElement)sender).CaptureMouse();
      _dragging = true;
    }
    private void OnMouseMove(object sender, MouseEventArgs e)
    {
      if (_dragging)
      {
        double x = e.GetPosition(MainCanvas).X;
        double y = e.GetPosition(MainCanvas).Y;
        PositionLens(x, y);
      }
    }
    private void OnMouseLeftButtonUp(object sender,
      MouseButtonEventArgs e)
    {
      if (_dragging)
      {
        ZoomCanvas.Visibility = Visibility.Collapsed;
        ((FrameworkElement)sender).ReleaseMouseCapture();
        _dragging = false;      }
    }
    private void PositionLens(double x, double y)
    {
      Lens.Center = LensBorder.Center = new Point(x, y);
      ZoomCanvas.SetValue(Canvas.LeftProperty, (1 - _scale) * x);
      ZoomCanvas.SetValue(Canvas.TopProperty, (1 - _scale) * y);
    }
  }
}

上一页  1 2 3 4 5 6 7 8  下一页

Tags:Silverlight 转换 剪辑

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接