您的位置:首页 > 其它

fxhomeSoft-silverlight地图引擎开发教程 之 地图移动控件

2011-01-06 17:10 288 查看

返回目录查看更多

=========================================================================

思路:

1、用BLAND绘制背景图

2、布局BUTTON,并建立BUTTON的样式模版

3、由计时器负责对地图显示层进行位置偏移,通过鼠标左键按下来启动计时器,鼠标离开或抬起关闭计时器。

先来看看效果

http://files.cnblogs.com/fxhome/fxhomeSoftMaps_move.xap

代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Windows.Threading;

namespace fxhomeSoftMaps
{
public partial class roundLogoControl : UserControl
{
public roundLogoControl()
{
InitializeComponent();
this.Loaded += new RoutedEventHandler(roundLogoControl_Loaded);
}

void roundLogoControl_Loaded(object sender, RoutedEventArgs e)
{
createDispatcherTimer();
rightMove.AddHandler(Button.MouseLeftButtonDownEvent, new MouseButtonEventHandler(rightMove_MouseLeftButtonDown), true);
rightMove.AddHandler(Button.MouseLeftButtonUpEvent, new MouseButtonEventHandler(Move_MouseLeftButtonUp), true);
leftMove.AddHandler(Button.MouseLeftButtonDownEvent, new MouseButtonEventHandler(leftMove_MouseLeftButtonDown), true);
leftMove.AddHandler(Button.MouseLeftButtonUpEvent, new MouseButtonEventHandler(Move_MouseLeftButtonUp), true);
topMove.AddHandler(Button.MouseLeftButtonDownEvent, new MouseButtonEventHandler(topMove_MouseLeftButtonDown), true);
topMove.AddHandler(Button.MouseLeftButtonUpEvent, new MouseButtonEventHandler(Move_MouseLeftButtonUp), true);
bottomMove.AddHandler(Button.MouseLeftButtonDownEvent, new MouseButtonEventHandler(bottomMove_MouseLeftButtonDown), true);
bottomMove.AddHandler(Button.MouseLeftButtonUpEvent, new MouseButtonEventHandler(Move_MouseLeftButtonUp), true);

}

DispatcherTimer timer = new DispatcherTimer();

string moveType;

private view_indexMap _viewIndexMap;
public view_indexMap viewIndexMap
{
set
{
_viewIndexMap = value;
}
get
{
return _viewIndexMap;
}
}

void createDispatcherTimer()
{
timer.Interval = new TimeSpan(0, 0, 0, 0, 5);
timer.Tick += new EventHandler(timer_Tick);
}

void moveObject()
{
double p = 1;
if (moveType == "left")
{
p = viewIndexMap.viewboxCT.TranslateX - p;
viewIndexMap.viewboxCT.TranslateX = p;
}
if (moveType == "up")
{
p = viewIndexMap.viewboxCT.TranslateY - p;
viewIndexMap.viewboxCT.TranslateY = p;
}
if (moveType == "right")
{
p = viewIndexMap.viewboxCT.TranslateX + p;
viewIndexMap.viewboxCT.TranslateX = p;
}
if (moveType == "down")
{
p = viewIndexMap.viewboxCT.TranslateY + p;
viewIndexMap.viewboxCT.TranslateY = p;
}
}

void timer_Tick(object sender, EventArgs e)
{
moveObject();
}

private void Move_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
timer.Stop();
}

private void rightMove_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
moveType = "right";
timer.Start();
}

private void bottomMove_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
moveType = "down";
timer.Start();
}

private void topMove_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
moveType = "up";
timer.Start();
}

private void leftMove_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
moveType = "left";
timer.Start();
}

private void restoreButton_Click(object sender, RoutedEventArgs e)
{
viewIndexMap.viewboxCT.TranslateX = 0;
viewIndexMap.viewboxCT.TranslateY = 0;
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐