仅在WPF元素上指定Name或x:Name属性是否会产生任何开销?我很难找到相关信息,所以也许答案是否定的,但我想听听那些更熟悉WPF内部工作的人的反馈。
我想知道对于具有名称的元素,WPF渲染引擎是否会为准备从代码等处访问该元素而执行任何特殊或额外的工作。
它所做的只是在生成的代码中创建对元素的引用,以便您更轻松地在代码后台引用它。例如:(来自于生成的代码文件MainWindow.g.cs,该文件将位于项目的隐藏“obj”文件夹中)
#line 6 "..\..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button button1;
...
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
switch (connectionId)
{
case 1:
this.button1 = ((System.Windows.Controls.Button)(target));
return;
}
this._contentLoaded = true;
}