在x和y位置绘制图像windows store app

时间:2014-04-30 12:51:27

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

我正在尝试在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值是从顶部开始无法显示图像的位置。

我知道Thickness-class使用“Left,Top,Right,Bottom”定位。我不确定如何随机计算正确的值。

1 个答案:

答案 0 :(得分: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);