C# Silverlight图形像素侧位置?

C# Silverlight图形像素侧位置?,c#,silverlight,graphics,layout,C#,Silverlight,Graphics,Layout,我尝试将简单的游戏移植到silverlight(SameGame)。问题是,我以前的源代码使用像素大小将游戏标记照亮棋盘。我使用线条和游戏标记(使用矩形)绘制简单的网格。如何正确设置rentacle位置? 示例20(左上角20像素) private void DrawGrid() { LayoutRoot.Children.Clear(); 矩形r=新矩形(); r、 宽度=20; r、 高度=20; r、 填充=新的SolidColorBrush(Color.FromArgb(255,0,25

我尝试将简单的游戏移植到silverlight(SameGame)。问题是,我以前的源代码使用像素大小将游戏标记照亮棋盘。我使用线条和游戏标记(使用矩形)绘制简单的网格。如何正确设置rentacle位置? 示例20(左上角20像素)

private void DrawGrid()
{
LayoutRoot.Children.Clear();
矩形r=新矩形();
r、 宽度=20;
r、 高度=20;
r、 填充=新的SolidColorBrush(Color.FromArgb(255,0,255,0));
r、 笔划=新的SolidColorBrush(Color.FromArgb(255,0,255,0));
r、 SetValue(Canvas.LeftProperty,(双精度)0);
r、 设置值(Canvas.TopProperty,(双精度)0);
LayoutRoot.Children.Add(r);
Color GridColor=Color.FromArgb(0xFF,0x00,0x00,0x00);
对于(int y=0;y<11;y++)
{
第l行=新行();
l、 X1=0;
l、 Y1=30*y-1;
l、 X2=20*30;
l、 Y2=30*y-1;
l、 笔划=新的SolidColorBrush(GridColor);
l、 冲程厚度=1;
LayoutRoot.Children.Add(l);
}
对于(int x=0;x<21;x++)
{
第l行=新行();
l、 X1=30*x;
l、 Y1=0;
l、 X2=30*x;
l、 Y2=10*30;
l、 笔划=新的SolidColorBrush(GridColor);
l、 冲程厚度=1;
LayoutRoot.Children.Add(l);
}            
}

您需要在LayoutRoot网格下方放置画布,或者将LayoutRoot更改为画布。
然后将重角添加到Canvas.Children。

您需要在LayoutRoot网格下方放置一个画布,或者将LayoutRoot更改为画布。 然后将重角添加到Canvas.Children

        private void DrawGrid()
    {
        LayoutRoot.Children.Clear();

        Rectangle r = new Rectangle();
        r.Width = 20;
        r.Height = 20;
        r.Fill = new SolidColorBrush(Color.FromArgb(255, 0, 255, 0));
        r.Stroke = new SolidColorBrush(Color.FromArgb(255, 0, 255, 0));
        r.SetValue(Canvas.LeftProperty, (double)0);
        r.SetValue(Canvas.TopProperty, (double)0);                       
        LayoutRoot.Children.Add(r);


        Color GridColor = Color.FromArgb(0xFF, 0x00, 0x00, 0x00);

        for (int y = 0; y < 11; y++)
        {
            Line l = new Line();
            l.X1 = 0;
            l.Y1 = 30 * y - 1;
            l.X2 = 20 * 30;
            l.Y2 = 30 * y - 1;
            l.Stroke = new SolidColorBrush(GridColor);
            l.StrokeThickness = 1;

            LayoutRoot.Children.Add(l);
        }

        for (int x = 0; x < 21; x++)
        {
            Line l = new Line();
            l.X1 = 30 * x;
            l.Y1 = 0;
            l.X2 = 30 * x;
            l.Y2 = 10 * 30;
            l.Stroke = new SolidColorBrush(GridColor);
            l.StrokeThickness = 1;

            LayoutRoot.Children.Add(l);
        }            
    }