特定のコントロールをホストするウィンドウにアクセスする必要があります (this
次のコード スニペット)。
アプリケーションにウィンドウが 1 つしかないと仮定すると、次のステートメントのどれがリソース集約的ではないですか? (または、これを行うためのより良い方法はおそらくありますか?)
Application.Current.MainWindow
Window.GetWindow(this)
必要になるまで最適化しない人もいます。とにかく、この場合、リソースまたはパフォーマンスのペナルティはおそらく最小限です。言い換えれば、おそらく心配する必要はありません。他にも最適化する必要があります。
これにより、アプリケーションのメイン ウィンドウが返されるか、設定されます。
// http://msdn.microsoft.com/en-us/library/system.windows.application.mainwindow.aspx
var w = Application.Current.MainWindow;
これを使用して、コントロールが配置されているウィンドウへの参照を返します。
// http://msdn.microsoft.com/library/vstudio/system.windows.window.getwindow.aspx
Window.GetWindow(theDependencyObject);
特定のコントロールをホストするウィンドウにアクセスする必要があると言いました。次に、意味的により適切なのは次のとおりだと思います。
Window.GetWindow(theDependencyObject);