Skip Navigation Links
技术文档
·网站建设
·软件使用
·图形设计
·程序开发
·网络应用
·电脑技巧
 
公司介绍
·公司简介
·索仕SRCOS网络应用平台
·索仕网站管理系统
·影视广告制作
·联系我们
 
 

Silverlight 八方向按键移动

6/2/2010 6:42:54 PM

 

1.新建项目

 

 2.加代码

 

Silverlight 八方向按键移动前台
		
			 <Grid x:Name="LayoutRoot" >
        <Button x:Name="button" Margin="256,176,0,0" VerticalAlignment="Top" Content="Button" HorizontalAlignment="Left" Width="80" RenderTransformOrigin="0.5,0.5" >
            <Button.RenderTransform>
                <TransformGroup>
                    <ScaleTransform/>
                    <SkewTransform/>
                    <RotateTransform/>
                    <TranslateTransform x:Name="tt"/>
                </TransformGroup>
            </Button.RenderTransform>
        </Button>
    </Grid>

 

 

 

 

Silverlight 八方向按键移动后台代码
		
			 public enum emUserDir
    {
        上, 下, 左, 右, 左上, 右上, 左下, 右下, 中
    }

    public partial class MainPage : UserControl
    {
        emUserDir[,] UserDir = new emUserDir[3, 3]
        {
            {emUserDir.左上,emUserDir.上,emUserDir.右上},
            {emUserDir.左,emUserDir.中,emUserDir.右},
            {emUserDir.左下,emUserDir.下,emUserDir.右下}
        };
        public int horizontal = 1;
        public int vertical = 1;

        public MainPage()
        {
            InitializeComponent();
            this.button.KeyDown += new KeyEventHandler(button_KeyDown);
            this.button.KeyUp += new KeyEventHandler(button_KeyUp);

        }

        void button_KeyUp(object sender, KeyEventArgs e)
        {
            string temp = e.Key.ToString();
            switch (e.Key)
            {
                case Key.Up:
                    if (vertical < 2)
                        vertical += 1;
                    break;
                case Key.Down:
                    if (vertical > 0)
                        vertical -= 1;
                    break;
                case Key.Left:
                    if (horizontal < 2)
                        horizontal += 1;
                    break;
                case Key.Right:
                    if (horizontal > 0)
                        horizontal -= 1;
                    break;
            }
        }

        void button_KeyDown(object sender, KeyEventArgs e)
        {
            string temp = e.Key.ToString();
            switch (e.Key)
            {
                case Key.Up:
                    if (vertical > 0)
                        vertical -= 1;
                    break;
                case Key.Down:
                    if (vertical < 2)
                        vertical += 1;
                    break;
                case Key.Left:
                    if (horizontal > 0)
                        horizontal -= 1;
                    break;
                case Key.Right:
                    if (horizontal < 2)
                        horizontal += 1;
                    break;

            }

            switch (UserDir[vertical, horizontal])
            {
                case emUserDir.右上:
                    tt.X++;
                    tt.Y--;
                    break;
                case emUserDir.右下:
                    tt.X++;
                    tt.Y++;
                    break;
                case emUserDir.左上:
                    tt.X--;
                    tt.Y--;
                    break;
                case emUserDir.左下:
                    tt.X--;
                    tt.Y++;
                    break;

                case emUserDir.上:
                    tt.Y--;
                    break;
                case emUserDir.下:
                    tt.Y++;
                    break;
                case emUserDir.左:
                    tt.X--;
                    break;
                case emUserDir.右:
                    tt.X++;
                    break;

            }

        }
    }

 

3.运行点击选中一下 Button  按下键盘 上下左右 ,左上, 右上, 左下, 右下可以八方移动

作者:梅叶冬青 来源:博客园
 
 
 
昆明索仕科技开发有限公司 版权所有 Copyright© 2002-2010 Kunming Source Technology Exploitive Co.,LTD. All Rights Reserved.
电话:0871-5627877 业务QQ:163871 联系我们
本站基于:索仕网站信息管理系统建设 版本 2.0.4325