通常、WPFコントロールは.xamlファイルで宣言され、コードビハインド(.xaml.csファイル)では宣言されません。しかし、時にはそれらを操作するために、後ろのコードでこれらのコントロールのいくつかを使用する必要があります。 xamlファイルに「存在する」場合、そのようなコントロールのハンドルを取得するにはどうすればよいですか?ControlTemplateにあるWPFコントロールにアクセスする方法は?
22
A
答えて
31
ControlTemplateクラスのFindName()メソッドを使用できます。
// Finding the grid that is generated by the ControlTemplate of the Button
Grid gridInTemplate = (Grid)myButton1.Template.FindName("grid", myButton1);
4
私はあなたが求めているのかが不明ですので、私は、私はあなたの質問のように解釈しています両方のインスタンスをしようとしてお答えします。
1) あなたが明示的に制御を宣言して、それを直接編集したい場合は、あなたがしなければならないのは、このようなような名前のプロパティが設定されている:
<Canvas x:Name="myCanvas"/>
をそれからを通じてキャンバスにアクセスすることができます以下のような名前:
2) あなたが複数回、一般的なコントロールを宣言し、それを使用することを探しているなら、あなたはこのようにそれを行うことができます。
あなたは、複数のコントロールのためのテンプレートとしてリソース教材を使用し、Xを追加したい場合はEllipse tempEllipse = (Ellipse)FindResource("MyEllipse");
::共有=「false」の場合210
<Window>
<Window.Resources>
<Ellipse x:Key="myEllipse" Height="10" Width="10">
</Window.Resources>
</Window>
あなたは、コードでこの構文を使用して、その定義済みのコントロールにアクセスすることができます。
+0
FindName()はnullを返し続けました。私のアプリケーションのために働いたFindResource()。ありがとう。 – JohnForDummies
関連する問題
- 1. WPF - スタイル設定ツール内から親コントロールにアクセスするControlTemplate
- 2. WPF関連するコントロールのValidationResultオブジェクトにアクセスする方法は?
- 3. スレッドセーフな方法でC#WPFコントロールにアクセスするには?
- 4. TabControlタブ内にあるコントロールにアクセスする方法は?
- 5. WPF DataTemplateからコントロールにアクセスする方法
- 6. WPFのControlTemplateは、スタイルに
- 7. tabContemのコントロールにフォーカスする方法WPF
- 8. WPFテンプレート内のコントロールにアクセスしてデフォルト値を提供する方法は?
- 9. WPF ControlTemplateどのように
- 10. WPF/XAML:ControlTemplateの外部のControlTemplateの要素にアクセスします。Trigger
- 11. WPFのコントロールを「クリックスルー」する方法はありますか?
- 12. WPFでコントロールを「アンラップ」する方法はありますか?
- 13. ControlTemplate EnabledプロパティをWPFでバインドする方法XAML
- 14. WPFコントロールからWindowsフォームコントロールにアクセスするには?
- 15. 行と列のインデックスでWPFグリッドのコントロールにプログラムでアクセスする方法?
- 16. WPFにコントロールの再検証を強制する方法はありますか?
- 17. あるコントロールのプロパティを別のコントロールにバインドする方法は?
- 18. WPFのControlTemplateは、UserControlの
- 19. WPF DataBoundであるControlTemplateを作成する
- 20. wpfでコントロールを動的に表示する方法は?
- 21. SilverlightコントロールをWPFソリューションに追加する方法は?
- 22. WPFでコントロールを「装飾する」方法
- 23. ControlTemplateをコードで設定する[WPF]
- 24. WPFでDataGridRowのControlTemplateを作成する
- 25. WPFのコンテンツコントロール内のコントロールにアクセス
- 26. ViewModelからRichEditBoxコントロールにアクセスする方法は?
- 27. Silverlightのコードビハインドからカスタムスタイルのコントロールにアクセスする方法は?
- 28. windows7のスタックパネルの内部でコントロールにアクセスする方法は?
- 29. ディスパッチャでWPFオブジェクトにアクセスする方法は?
- 30. チェックボックスのリストに入力してアクセスする方法は? VB.NET WPF
これは私のためにヌル例外を返していましたが、ここでいくつかの異なる答えを試しながら何かを実現しました:あなたが探しているテンプレートがmyButton1_に適用されている場合、CSharperの答えを使用してください。しかし、myButton1が単にテンプレートのメンバである場合、代わりに '(Grid)myButton1.FindName(" grid ");'を使用します(ボタンハンドラで便利です)。 – Naucle