2011-08-17 5 views
2

WPF要素に単にNameまたはx:Name属性を指定するとオーバーヘッドはありますか?私はこれに関する情報を見つけるのに困っていたので、おそらく答えは「いいえ」ですが、私はWPFの内部の仕組みに精通している人からのフィードバックを得たいと思います。WPF要素にNameまたはx:Name属性を指定するときのオーバーヘッド

は、私はそれがないすべてが作成され

答えて

2

など、WPFのレンダリングエンジンは、コードから、その要素のアクセシビリティを準備するために、特別なまたは余分な作業を行う場合は、[名前を持つ要素に対して思ったんだけど推測します生成されたコード内の要素を参照して、コード内で参照するのを容易にします。例:(プロジェクトの隠された「OBJ」フォルダの下になり、生成されたコードファイル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

ありがとうございました。それは私の考えでもあり、誰かがそれを確認したかどうかを見たいと思っていました。 –

関連する問題