【问题标题】:Draw image at x and y position windows store app在 x 和 y 位置绘制图像 windows store app
【发布时间】:2014-05-19 08:18:00
【问题描述】:

我正在尝试在 Windows 应用商店应用中绘制图像。图像是在 XAML 设计器界面中预绘制的。

点击按钮时,我希望它的 X 和 Y 坐标随机变化;考虑到屏幕尺寸。

谷歌搜索和尝试确实让我有所收获。然而,问题是图像有时会从屏幕上消失(为什么我不知道)。

如何更改 X 和 Y 位置,以使图像不会从屏幕上掉下来?

我尝试过的(也有一些变化):

var bounds = Window.Current.Bounds;
Random r = new Random();
int y = r.Next(0, (int)bounds.Right);
int x = r.Next(140, (int)bounds.Bottom);
image.Margin = new Thickness(x, y, 0,0);

供参考:140的值是从上到下不能显示图像的位置。

我知道厚度类使用“左、上、右、下”定位。我不确定如何随机计算正确的值。

【问题讨论】:

    标签: c# windows-runtime windows-store-apps winrt-xaml


    【解决方案1】:

    您交换了 x 和 y 值。假设您的图像在窗口大小的面板中并且具有VerticalAlignment="Top"HorizontalAlignment="Left",您可以这样做:

    var bounds = Window.Current.Bounds;
    var r = new Random();
    int x = r.Next(0, (int)bounds.Right - (int)image.ActualWidth);
    int y = r.Next(140, (int)bounds.Bottom - (int)image.ActualHeight);
    image.Margin = new Thickness(x, y, -x, -y);
    

    【讨论】:

    • 图像仍然从屏幕上消失。您还忘记将 image.ActualWidth 和 image.ActualHeight 转换为整数。
    • 你能分享一个截图来清楚你的意思是消失吗?还有,里面是什么?
    • 图像消失了,好像它的坐标让它飞离了屏幕。我通过调试检查了坐标,如果没有,它实际上应该出现在屏幕上。我实际上想出了制作该屏幕截图的方法;我注意到顶层有一个网格(具有 140 像素的网格)。在该区域内绘制时使图像落在其后面。所以你的解决方案有效,谢谢!
    • 很高兴你知道了。将来 - 最好使用可视化树调试器来调试布局问题。对于 Windows 8,您可以使用 XAML Spy 或 WinRT XAML Toolkit 的调试工具。
    猜你喜欢
    • 1970-01-01
    • 2012-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-04
    • 1970-01-01
    • 2022-09-30
    • 1970-01-01
    相关资源
    最近更新 更多