我正在Visual 2010 C#中与WPF一起开发一个Microsoft表的应用程序,在我的一生中无法找到这个问题的简单解决方案。
当使用ScatterView控件而不为散视图项设置自定义模板时,该控件以任意的方向和位置将新的ScatterViewItems抛到屏幕上。这个,我喜欢。
我正在一个垂直屏幕上开发我的程序,scatterViewItems是随机抛出的,除了它们大多是直立的,而且从不向上向下抛出。我得到的是,控制知道屏幕是垂直的,并防止项目开始倒挂。
然而,当我将程序转移到一个带有水平屏幕的设备上时,这些项目现在被随机抛出,并且经常从原来的应用程序方向颠倒过来。同样, ScatterView控件正在读取InteractiveSurface.PrimarySurfaceDevice.Tilt (或类似的内容)并补偿.
我怎么才能让它停止这样做呢?
我只希望我的项目继续出现在ScatterView中,就像屏幕是垂直的一样。我能骗ScatterView认为它是垂直的吗?我可以关掉这个功能吗?我想避免为ScatterViewItems创建自己的模板。
谢谢!
发布于 2012-07-11 21:22:20
如果没有人能解释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..。
发布于 2012-07-07 13:38:39
将每个项的定向属性设置为0。只有在没有显式设置值的情况下,才会出现随机性
https://stackoverflow.com/questions/11370575
复制相似问题