Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
永久更改C#WPF中的画布位置_C#_Wpf - Fatal编程技术网

永久更改C#WPF中的画布位置

永久更改C#WPF中的画布位置,c#,wpf,C#,Wpf,我试图在Visual Studio上使用WPF C#制作一个垄断游戏。 我有一个问题,我做了一个骰子类,给我2个骰子的随机值 Dice.Cs 问题是画布总是从起始位置移动,而不会移动 继续在黑板上移动 图像被链接以作进一步解释 我想上一堂演奏课。这将包含它所在位置的当前索引。 它从0开始。 你掷5分 Piece.Position += roll; 然后它知道它的位置索引为5。 通过转换器将其绑定或查找,然后工件到达位置[5]中定义的位置。 下次滚动时,将结果添加到5。假设是7。它的索引变为

我试图在Visual Studio上使用WPF C#制作一个垄断游戏。 我有一个问题,我做了一个骰子类,给我2个骰子的随机值

Dice.Cs

问题是画布总是从起始位置移动,而不会移动 继续在黑板上移动

图像被链接以作进一步解释


我想上一堂演奏课。这将包含它所在位置的当前索引。 它从0开始。
你掷5分

Piece.Position += roll;
然后它知道它的位置索引为5。 通过转换器将其绑定或查找,然后工件到达位置[5]中定义的位置。
下次滚动时,将结果添加到5。假设是7。它的索引变为12。然后用它来索引条目的位置

不要使用一个UI来保留状态,使用一个类。

它不会添加索引值@安迪
namespace WpfApp1
 {

public class Pair<T, U>
{
    public Pair()
    {
    }

    public Pair(T first, U second)
    {
        this.First = first;
        this.Second = second;
    }

    public T First { get; set; }
    public U Second { get; set; }
};
public static class Board
{
    public static Tuple<int, int>[] Postions =
        {
         Tuple.Create(533,590),
         Tuple.Create(533,540),
         Tuple.Create(533,478),
         Tuple.Create(533,423),
         Tuple.Create(533,368),
         Tuple.Create(533,313),
         Tuple.Create(533,258),
         Tuple.Create(533,203),
         Tuple.Create(533,148),
         Tuple.Create(533,93),
         Tuple.Create(533,40),
         Tuple.Create(430,40),
         Tuple.Create(380,40),
         Tuple.Create(330,40),
         Tuple.Create(280,40),
         Tuple.Create(227,40),
         Tuple.Create(180,40),
         Tuple.Create(127,40),
         Tuple.Create(80,40),
         Tuple.Create(40,40),
         Tuple.Create(40,88),
         Tuple.Create(40,148),
         Tuple.Create(40,203),
         Tuple.Create(40,258),
         Tuple.Create(40,313),
         Tuple.Create(40,373),
         Tuple.Create(40,428),
         Tuple.Create(40,478),
         Tuple.Create(40,530),
         Tuple.Create(40,590),
         Tuple.Create(80,590),
         Tuple.Create(130,590),
         Tuple.Create(180,590),
         Tuple.Create(230,590),
         Tuple.Create(283,590),
         Tuple.Create(333,590),
         Tuple.Create(383,590),
         Tuple.Create(433,590),
         Tuple.Create(483,590)

        };


    public static int FindPos(double top, double left, ref Canvas c)
    {

        int i;
        for (i = 0; i < 40; i++)
        {
            if (Canvas.GetTop(c) == top && Canvas.GetLeft(c) == left)
            {
                return i;
            }
        }
        return i;
    }
}
}
public static void Move(int num,ref Canvas c)
    {
        double left = Canvas.GetLeft(c);
        double top = Canvas.GetTop(c);
        int current=Board.FindPos(top, left,ref c);

        Canvas.SetLeft(c,Board.Postions[current+num].Item2);
        Canvas.SetTop(c,Board.Postions[current+num].Item1);
    }
Piece.Position += roll;