首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ScatterView项目定位与PrimarySurfaceDevice.Tilt

ScatterView项目定位与PrimarySurfaceDevice.Tilt
EN

Stack Overflow用户
提问于 2012-07-06 22:42:17
回答 2查看 414关注 0票数 0

我正在Visual 2010 C#中与WPF一起开发一个Microsoft表的应用程序,在我的一生中无法找到这个问题的简单解决方案。

当使用ScatterView控件而不为散视图项设置自定义模板时,该控件以任意的方向和位置将新的ScatterViewItems抛到屏幕上。这个,我喜欢。

我正在一个垂直屏幕上开发我的程序,scatterViewItems是随机抛出的,除了它们大多是直立的,而且从不向上向下抛出。我得到的是,控制知道屏幕是垂直的,并防止项目开始倒挂。

然而,当我将程序转移到一个带有水平屏幕的设备上时,这些项目现在被随机抛出,并且经常从原来的应用程序方向颠倒过来。同样, ScatterView控件正在读取InteractiveSurface.PrimarySurfaceDevice.Tilt (或类似的内容)并补偿.

我怎么才能让它停止这样做呢?

我只希望我的项目继续出现在ScatterView中,就像屏幕是垂直的一样。我能骗ScatterView认为它是垂直的吗?我可以关掉这个功能吗?我想避免为ScatterViewItems创建自己的模板。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-11 21:22:20

如果没有人能解释ScatterView是如何知道屏幕倾斜角度的,以及如何改变这个角度的话,那么唯一的解决方案就是产生你自己的随机性。作为参考,以下是我以前做过的事情:

代码语言:javascript
复制
    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
EN

Stack Overflow用户

发布于 2012-07-07 13:38:39

将每个项的定向属性设置为0。只有在没有显式设置值的情况下,才会出现随机性

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11370575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档