2011-08-17 67 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

謝謝。這也是我的想法,只是想看看是否有人確認或不同意。 –

相關問題