通常、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 controltemplateがウィンドウに適用され、コントロールを追加する方法
- 3. WPF関連するコントロールのValidationResultオブジェクトにアクセスする方法は?
- 4. スレッドセーフな方法でC#WPFコントロールにアクセスするには?
- 5. TabControlタブ内にあるコントロールにアクセスする方法は?
- 6. WPFのListBoxでDataTemplateのコントロールにアクセスする方法
- 7. WPF DataTemplateからコントロールにアクセスする方法
- 8. WPFのControlTemplateは、スタイルに
- 9. WPFをControlTemplateに渡すパラメータ
- 10. tabContemのコントロールにフォーカスする方法WPF
- 11. WPFテンプレート内のコントロールにアクセスしてデフォルト値を提供する方法は?
- 12. WPF ControlTemplateどのように
- 13. WPF:ビジネスオブジェクトとDataTemplateまたはControlTemplateをCustomControlに結合する方法
- 14. WPF/XAML:ControlTemplateの外部のControlTemplateの要素にアクセスします。Trigger
- 15. のControlTemplate WPF
- 16. WPF ControlTemplateトリガー
- 17. WPFでコントロールを「アンラップ」する方法はありますか?
- 18. WPFのコントロールを「クリックスルー」する方法はありますか?
- 19. コントロールのVisualStateGroupにアクセスする方法
- 20. コード内のコントロールにアクセスする方法
- 21. ControlTemplate EnabledプロパティをWPFでバインドする方法XAML
- 22. WPFコントロールからWindowsフォームコントロールにアクセスするには?
- 23. WPFにコントロールの再検証を強制する方法はありますか?
- 24. 行と列のインデックスでWPFグリッドのコントロールにプログラムでアクセスする方法?
- 25. WPFのControlTemplateは、UserControlの
- 26. あるコントロールのプロパティを別のコントロールにバインドする方法は?
- 27. UWP ControlTemplateの要素またはコントロールへのアクセス
- 28. WPF DataBoundであるControlTemplateを作成する
- 29. WPF ListView ControlTemplateのカスタマイズ
- 30. 他の子コントロールから親コントロールの子コントロールにアクセスする方法は?
これは私のためにヌル例外を返していましたが、ここでいくつかの異なる答えを試しながら何かを実現しました:あなたが探しているテンプレートがmyButton1_に適用されている場合、CSharperの答えを使用してください。しかし、myButton1が単にテンプレートのメンバである場合、代わりに '(Grid)myButton1.FindName(" grid ");'を使用します(ボタンハンドラで便利です)。 – Naucle