【发布时间】:2014-03-15 01:13:09
【问题描述】:
我正在尝试编写一个 C# WPF 应用程序,该应用程序将能够生成许多图像(代表行星),然后将它们相对于彼此移动。我有一个标准的 C# winform 应用程序可以执行此操作,但我正在尝试将其转换为 WPF 以解决快速移动图像时出现的可怕刷新问题。
我从事软件开发已有 20 多年,使用 .Net/C# 已经 7 年了,但直到本周才使用 WPF,我有点摸不着头脑。
我有一个用于所有图像的位图图像,现在需要以编程方式将多个图像中的任何一个添加到画布上,然后将它们放在设定的位置。我目前必须添加每个图像的代码部分是
string BodyName = "Body" + BodyCount.ToString();
Image BodyImage = new Image
{
Width = moonBitmap.Width,
Height = moonBitmap.Height,
Name = BodyName,
Source = new BitmapImage(new Uri(moonBitmap.UriSource.ToString(), UriKind.Relative)),
};
MainCanvas.Children.Add(BodyImage);
MainCanvas.SetTop(BodyImage, NewBody.YPosition);
MainCanvas.SetLeft(BodyImage, NewBody.XPosition);
(NewBody.YPosition 和 NewBody.XPosition 都是双精度的)。
在我看来,这似乎会在画布上添加任意数量的图像。但是 SetTop 和 SetLeft 方法,我认为是我需要用来定位图像的方法不会编译,我从智能感知中得到以下消息
"Member 'System.Windows.Controls.Canvas.SetTop(System.Windows.UIElement,double)' cannot be accessed with an instance reference; qualify it with a type name instead."
作为 WPF 的新手,我认为我在做一些愚蠢的事情。谁能告诉我应该怎么做?
谢谢
【问题讨论】: