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;
}
}
}
相关文章推荐
- fxhomeSoft-silverlight版地图引擎开发教程 之 底图控件制作
- fxhomeSoft-silverlight版地图引擎开发教程 之 人物动画控件
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(九) 2D游戏角色在地图上的移动
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(二十一)主位式地图移动模式
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(九) 2D游戏角色在地图上的移动
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(十六) 牵引式地图移动模式②
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(二十一)主位式地图移动模式
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(九) 2D游戏角色在地图上的移动
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(二十一)主位式地图移动模式
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(十三)牵引式地图移动模式①
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(十六) 牵引式地图移动模式②
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(十三)牵引式地图移动模式①
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(十六) 牵引式地图移动模式②
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(十三)牵引式地图移动模式①
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(二十一)主位式地图移动模式
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(三十七)地图自适应区域加载
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(三十六)地图自定义切片与导出
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(三十四)地图编辑器诞生啦!
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(三十七)地图自适应区域加载
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(三十四)地图编辑器诞生啦!