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

  • 相关阅读:
    mysql报错:java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.
    MD5登陆密码的生成
    15. 3Sum、16. 3Sum Closest和18. 4Sum
    11. Container With Most Water
    8. String to Integer (atoi)
    6. ZigZag Conversion
    5. Longest Palindromic Substring
    几种非线性激活函数介绍
    AI初探1
    AI初探
  • 原文地址:https://www.cnblogs.com/honeymoon/p/1750224.html
Copyright © 2011-2022 走看看