WPF名前スコープに手動で名前を登録する

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存
dotnet-icon

“名前が名前スコープで見つかりません”的な感じで怒られたときは、RegisterNameメソッドを使ってWPF名前スコープに要素を登録しましょう。

スポンサーリンク

WPF名前スコープとは

XAMLを使っているときはNameプロパティを書くだけで自動的に登録されるため、気づくことはありませんが、WPF名前スコープというのがあって、要素と名前が関連づくよう管理されています。詳しくはこちら

このため、コードビハインドからコントロールやストーリーボードを作ったときなんかは、そのままでは名前でアクセスすることができません。

登録しないとどうなるのか

名前で要素にアクセスするような(たとえばStopStoryboardなど)コードを書くと実行時に▼みたいな感じで例外が発生します。

‘hogehoge’ 名前が ‘~~’ の名前スコープで見つかりません。

WPF名前スコープに要素を登録するには

これを解決するには手動でWPF名前スコープに、この”hogehoge”という名前と、それに対応する要素を登録してあげる必要があります。コードビハインドからWPF名前スコープに要素を登録するにはFrameworkElement.RegisterNameメソッドを呼び出します。

RegisterNameの引数には名前(”hogehoge”)とStoryBoardなどの要素(element)を指定します。

最後までお読みいただきありがとうございました m(_ _)m

参考

スポンサーリンク
  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存