Silverlight 2 转换和剪辑区域
2009-02-09 11:52:17 来源:WEB开发网ZoomCanvas 通常对用户是隐藏的,但按下鼠标左键时,OnMouseLeftButtonDown(请参见图 3)会切换其 Visibility 属性,使 ZoomCanvas 变为可见。ZoomCanvas 在其整体中始终不可见。但是,它的 Clip 属性会使用 EllipseGeometry 进行初始化,这会将内容呈现在一个正圆中并显示为一个放大镜(无论从哪方面看)。您可以通过修改 EllipseGeometry 的 RadiusX 和 RadiusY 属性来更改放大镜(实际上是剪辑区域)的大小。如果执行此操作,可能还需要修改 EllipseGeometry 的属性 LensBorder 以使其匹配(EllipseGeometry 使用它在放大镜周围绘制边界)。
图 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);
}
}
}
Tags:Silverlight 转换 剪辑
编辑录入:爽爽 [复制链接] [打 印]- ››silverlight全屏显示图片
- ››Silverlight MVVM 模式(一) 切近实战
- ››Silverlight for Windows Phone 7开发系列(1):...
- ››Silverlight for Windows Phone 7开发系列(2):...
- ››Silverlight for Windows Phone 7开发系列(3):...
- ››Silverlight for Windows Phone 7开发系列(4):...
- ››Silverlight for Symbian
- ››Silverlight3系列(四)数据绑定 Data Binding 1
- ››转换工具介绍
- ››silverlight2 游戏 1 你能坚持多少秒
- ››Silverlight开发实践--PicZoomShow
- ››Silverlight自定义控件开发 - 令人懊恼的OnApplyT...
更多精彩
赞助商链接