0

我正在尝试在名为Main的应用程序的主窗体上的画布(布局)中呈现一些 Image 对象。我正在使用 C# 和 WPF 创建应用程序,但无法从另一个类中获取要呈现的图像,但在Main form 部分类中可以正常工作。

public static void renderStarscape(int density = 200)
    {
        Main main = new Main();
        Random random = new Random();
        for (int x = 0; x < density; x++)
        {
            int starSize = random.Next(1, 10);
            int starOpacity = random.Next(10, 30);
            int starX = random.Next(0, 800);
            int starY = random.Next(0, 500);
            Image Star = new Image();
            Star.Name = (x < 10) ? "star_0" + x : "star_" + x;
            Star.Source = streamImage("star_background.png");
            Star.Height = starSize;
            Star.Width = starSize;
            Star.Opacity = (double)starOpacity / 100;
            main.Layout.Children.Add(Star);
            Canvas.SetLeft(Star, starX);
            Canvas.SetTop(Star, starY);
            Canvas.SetZIndex(Star, 0);
        }
    }

任何帮助都会很棒,谢谢

4

1 回答 1

0

您正在使用new instance of Main与 UI 上显示的方法不同的方法创建一个 all。

而是将 Canvas 的实例传递给该方法并绘制类似这样的东西 -

public static void renderStarscape( Canvas layout, int density = 200)
{
    // Use layout and remove the Main object initialization from the method.
    layout.Children.Add(Star);
}

它在类的部分声明中起作用的原因是您使用的是相同的实例而不是为Main().

于 2012-11-24T13:53:42.227 回答