2012-07-06 39 views
0

我正在使用WPF爲Visual C#2010 Express開發Microsoft Surface表的應用程序,並且無法爲我的生活找到此問題的簡單解決方案。ScatterView項目方向和PrimarySurfaceDevice.Tilt

使用時無需設置scatterview項的自定義模板ScatterView控件,該控件將引發新ScatterViewItems到隨機的位置和姿勢的畫面。這個,我喜歡。

我開發一個垂直的屏幕,其上scatterViewItems隨機扔在我的程序,除非他們大多是正直,從不扔在updide下降。我得到的是控制器知道屏幕是垂直的,並保持項目從頭開始顛倒。

然而,當我用橫屏程序傳輸到設備,該項目現在拋出隨機並且經常顛倒從原來的應用方向向下。再次ScatterView控件正在讀取InteractiveSurface.PrimarySurfaceDevice.Tilt(或類似的東西)並進行補償。

如何使它停止這樣做呢?

我只是希望我的項目將繼續出現在ScatterView彷彿畫面上是垂直的。我能否讓ScatterView認爲它仍然是垂直的?我可以關閉此功能嗎?我想避免爲ScatterViewItems製作自己的模板。

謝謝!

回答

0

好吧,如果沒有人能夠解釋ScatterView是怎麼知道的屏幕傾斜角度,以及如何改變這種狀況,那麼唯一的解決辦法是生成自己的隨機性。作爲參考,這是我用來做這個:

ScatterViewItem item = new ScatterViewItem(); 
    item.Content = image; 
    Random rand = new Random(); 

    item.Orientation = RandOrientation(-20, 20); 
    item.Center = RandCenter(50); 
    SSScatter.Items.Add(item); 

    private Point RandCenter(int pad) 
    { 
     int randx = rand.Next(pad, (int)SSScatter.Width-pad); 
     int randy = rand.Next(pad, (int)SSScatter.Height-pad); 
     return new Point(randx, randy); 
    } 

    private int RandOrientation(int low, int up) 
    { 
     int randor = rand.Next(low, up); 
     return randor; 
    } 

我仍然希望有一種方式來欺騙ScatterView ...

0

將每個項目的方向屬性設置爲0。隨機性只發生在你還沒有明確設置一個值

+0

謝謝,但我試圖保持隨機取向(或僞隨機,因爲它們大多數仍然保持豎直的屏幕)。我想我可以製作我自己的隨機定向生成器,但確實有更好的方法來做到這一點。 – Erstwhile 2012-07-10 21:23:36

+0

你必須做你自己的隨機性...... +/- 15度會很好 – 2012-07-11 00:26:51

相關問題