2014-10-31 215 views
0

我是新搭建Windows Phone 8/8.1應用程序(第二個應用程序),我有一個非常惱人的問題。Windows Phone 8 C#隨機橢圓生成

我想要做什麼,它想隨機在我的畫布上生成一個橢圓。但是,當我生成的橢圓形,我發現,橢圓總是某處產生的黑線,你可以在圖片下方向下看:

enter image description here

,我用它來生成代碼橢圓是這樣的:

private void CreateDots() 
    { 

     Random Top = new Random(); 
     Random Left = new Random(); 

     int TopPos = Top.Next(0, 390); // screen height 
     int LeftPos = Left.Next(0, 800); // screen width 

     Ellipse Dot =new Ellipse(); 
     Dot.Name = "Dot"; 
     Dot.Fill = new SolidColorBrush(Color.FromArgb(255, 0,0,0)); 
     Dot.Width = 50; 
     Dot.Height = 50; 

     Canvas.SetTop(Dot, TopPos); 
     Canvas.SetLeft(Dot, LeftPos); 

     Canvas.Children.Add(Dot); 
    } 

有沒有人現在如何在屏幕上的任何地方生成橢圓,而不是隻在黑線上? 非常感謝您的幫助。

回答

3

不要創建兩個這樣的Random實例。創建一個實例,然後重複使用它。

此外,請在CreateDots調用之間堅持Random實例。如果您不這樣,並且您快速連續撥打電話,則最終可能會有兩個連續的Random實例相同。

Random默認爲當前時間播種。

你的省略號都傾向於趴在那裏LeftTop具有相同的值,因爲這兩個Random實例快速連續地產生,而且幾乎總是以相同的當前時間播種行。當您生成LeftPosTopPos時,兩個對Next的呼叫都從相同的狀態開始。

+0

啊,該死的,真的很愚蠢的我沒有看到。非常感謝你,它現在完美:) – 2014-10-31 14:18:12