0

我已经开始使用WPF并开始使用一些游戏和视觉应用程序。

在我的第一个应用程序中,我开始了一个空白项目,然后创建了一个从窗口继承的类,该窗口具有我从动态添加和删除图像的画布,如下所示:

class MainWindow : Window
{
    public Canvas canvas=new Canvas();

    public MainWindow()
    {
    this.addChild(canvas);
    }

    //add an image every second move it and remove it
}

这对于静态XML来说是不可能的,但有人告诉我动态控制是个坏主意,是真的吗?

是性能损失吗?

有没有一种简单有效的方法可以以 30 fps 的速度无延迟地绘制 100 张图像?

4

2 回答 2

2

与以正确的方式做事获得的巨大生产力/代码清洁度相比,没有性能损失/性能损失可以忽略不计。

而且 XAML 不是静态的。

DataBinding,如果您需要动态添加/删除项目,有ItemsControl.

还有一个概念是DataTemplates根据传递给它的 Model / ViewModel 对象动态呈现特定的 UI。

不要在程序代码中操作或创建 UI 元素。WPF不是winforms。

于 2013-07-03T03:58:37.180 回答
1

没有一个控件是真正的static。没有任何运行时差异。

最有可能的是,使用 XML意味着 XAML。XAML仅用作数据源,用于实际生成C# 代码(或 VB.NET 或其他 .NET 语言中的代码)以进行编译,并以与您以编程方式执行的完全相同的方式使用。

你可以在你的工作中使用这个事实。如果您知道如何使用XAML执行某些操作,但不知道如何在 中执行类似C# code操作,请执行以下操作:开发基于 XAML 的项目并构建它。*.cs然后在你的项目文件所在目录下进行文件搜索。您会发现一些*.cs不在您的源代码中的文件。这些文件是使用XAML自动生成的。看他们。

您将能够了解它是如何在幕后工作的。

祝你好运,

于 2013-07-03T04:52:18.720 回答