2012-07-06 3 views
0

저는 Visual C# 2010 Express에서 WPF로 Microsoft Surface 테이블 용 응용 프로그램을 개발하기 위해 노력하고 있습니다. 내 인생에서이 문제에 대한 간단한 해결책을 찾을 수는 없습니다.ScatterView 항목 방향 및 PrimarySurfaceDevice.Tilt

스 캐터 뷰 항목에 대한 사용자 지정 템플릿을 설정하지 않고 ScatterView 컨트롤을 사용하는 경우 컨트롤은 새로운 ScatterViewItems를 임의의 방향과 위치로 화면에 표시합니다. 이것, 나는 좋아한다.

scatterViewItems가 무작위로 던져지는 수직 화면에서 내 프로그램을 개발하고 있습니다. 단, 대부분 수직이며, 하강시에는 결코 던지지 않습니다. 내가 얻는 것은 컨트롤이 화면이 수직임을 알고 아이템이 거꾸로부터 시작하지 못하게하는 것입니다.

그러나 가로 화면이있는 기기로 프로그램을 전송하면 항목이 무작위로 던져지고 원래의 앱 방향에서 거꾸로 뒤집어집니다. 다시 은 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

각 항목에 대해 Orientation 속성을 0으로 설정하십시오. 무작위성은 명시 적으로 값을 설정하지 않은 경우에만 발생합니다.

+0

감사합니다,하지만 난 임의의 방향을 유지하기 위해 노력하고 (또는 의사 난수 : 참고로, 여기에 내가이 작업을 수행하는 데 사용 무엇 , 왜냐하면 그들은 여전히 ​​수직 화면에서 거의 똑바로 머물러 있기 때문입니다). 난 내 자신의 임의의 방향 생성기를 만들 수 있다고 생각하지만, 확실하게 더 나은 방법이 있어요. – Erstwhile

+0

자신 만의 임의성을해야합니다 ... +/- 15 도가 좋을 것입니다. –