2011-08-17 39 views
2

仅仅在WPF元素上指定Name或x:Name属性会产生任何开销吗?我很难找到任何有关这方面的信息,所以也许答案是否定的,但我想从那些更熟悉WPF内部工作的人那里得到一些反馈。为WPF元素指定Name或x:Name属性时的开销

我想我知道了有若WPF渲染引擎做任何特殊或额外的工作来从代码元素的无障碍准备名称元素等

回答

2

它所做的就是创建一个引用生成的代码中的元素,以便于您在后面的代码中引用它。例如:(从生成的代码文件MainWindow.g.cs,这将是你的项目的隐藏的“目标文件”文件夹下)

#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; 
    } 

如果你没有给它一个名称,在“((系统。 Windows.Controls.Button)(target))“仍然会在运行时创建,您不会将”this.button1“变量指​​向它。

+0

谢谢。这也是我的想法,只是想看看是否有人确认或不同意。 –

相关问题