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