C# 在x和y位置绘制图像windows应用商店应用程序

C# 在x和y位置绘制图像windows应用商店应用程序,c#,windows-runtime,windows-store-apps,winrt-xaml,C#,Windows Runtime,Windows Store Apps,Winrt Xaml,我正在尝试在Windows应用商店应用程序中绘制图像。在XAML设计器界面中预绘制图像 当点击一个按钮时,我希望它的X和Y坐标随机变化;考虑到屏幕大小 谷歌搜索和尝试确实让我有所收获。然而,问题是,图像有时会从屏幕上消失(为什么我不知道) 如何更改X和Y位置,使图像不会从屏幕上脱落 我尝试过的(也有一些变化): 参考:140值是从顶部开始的图像无法显示的位置 我知道厚度类使用“左、上、右、下”定位。我不确定如何随机计算正确的值。您交换了x和y值。假设您的图像位于窗口大小的面板中,并且具有Ver

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

当点击一个按钮时,我希望它的X和Y坐标随机变化;考虑到屏幕大小

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

如何更改X和Y位置,使图像不会从屏幕上脱落

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

参考:140值是从顶部开始的图像无法显示的位置


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

您交换了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的调试工具。
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);