C# 将XML用于静态控件和以编程方式创建控件之间的区别?

C# 将XML用于静态控件和以编程方式创建控件之间的区别?,c#,wpf,performance,controls,C#,Wpf,Performance,Controls,我已经开始使用WPF,并开始使用一些游戏和视觉应用程序 在我的第一个应用程序中,我启动了一个空白项目,然后创建了一个从窗口继承的类,该窗口有一个画布,我可以动态添加和删除图像,如下所示: class MainWindow : Window { public Canvas canvas=new Canvas(); public MainWindow() { this.addChild(canvas); } //add an image every

我已经开始使用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帧的速度无延迟地绘制100幅图像

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

XAML不是静态的

数据绑定
,如果需要动态添加/删除项,则有
项控件

还有
DataTemplates
的概念,它根据传递给它的模型/视图模型对象动态呈现特定的UI


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

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

XAML不是静态的

数据绑定
,如果需要动态添加/删除项,则有
项控件

还有
DataTemplates
的概念,它根据传递给它的模型/视图模型对象动态呈现特定的UI


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

没有一个控件是真正的
静态的。运行时没有任何区别

最有可能的是,通过使用XML,您指的是XAMLXAML仅仅作为一个数据源,用于实际生成C#代码(或VB.NET或其他.NET语言中的代码)来编译is,并以编程方式完全相同的方式使用is

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

您将能够了解它是如何在引擎盖后面工作的


祝你好运,

没有一个控件是真正的
静态的。运行时没有任何区别

最有可能的是,通过使用XML,您指的是XAMLXAML仅仅作为一个数据源,用于实际生成C#代码(或VB.NET或其他.NET语言中的代码)来编译is,并以编程方式完全相同的方式使用is

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

您将能够了解它是如何在引擎盖后面工作的


祝你好运,

让我问你一个问题:解析文本(BAML)如何比可执行代码更快?还有一个额外的步骤。。因此,尽管性能差异相对不明显。。还有一个额外的步骤。为什么不使用动画呢?您可以在xaml和代码隐藏中使用它。让我问您:解析文本(BAML)如何比可执行代码更快?还有一个额外的步骤。。因此,尽管性能差异相对不明显。。还有一个额外的步骤。为什么不使用动画呢?您可以在xaml和代码隐藏中使用它。好的,我知道了,我已经使用了
WPF
项目模板来查看它是如何工作的。但是一个关于性能的问题,我是否能够真实地显示200个图像控件并以大约30-50 fps的速度更新它们?好的,我明白了,我使用了
WPF
项目模板来查看它是如何工作的。但是一个关于性能的问题,我是否能够真实地显示200个图像控件,并以大约30-50 fps的速度更新它们?