zoukankan      html  css  js  c++  java
  • Silverlight 八方向按键移动

     1.新建项目

     2.加代码


    前台
    <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>

    后台代码
    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  按下键盘 上下左右 ,左上, 右上, 左下, 右下可以八方移动

  • 相关阅读:
    3js深入
    01课js初接触;
    弥合对象/关系之间的鸿沟(一)
    Spiral Matrix——螺旋矩阵
    原来···是不是高手,看try cathch都能看出来···
    Web视频分享处理类库的设计
    每个开发人员现在应该下载的十种必备工具
    使用C#得到局域网内所有主机名,IP地址,MAC地址,使用C# 实现查看所有系统事件
    IIS 错误 :“NETWORK SERVICE does not have write access” 解决办法
    配置Url Remap时发生Parser Error的解决办法
  • 原文地址:https://www.cnblogs.com/honeymoon/p/1750224.html
Copyright © 2011-2022 走看看