実行時にControlTemplateを定義したいと思います。これは可能ですか?私はControlTemplateクラスのVisualTreeプロパティに気付きました。私は、FrameworkElementFactoryクラスを使用していることに気付きました。しかし、私はそれを動作させるように見えることはできません。実行時にWPF ControlTemplateを定義する
実行時にControlTemplateを作成することはできますか?
実行時にControlTemplateを定義したいと思います。これは可能ですか?私はControlTemplateクラスのVisualTreeプロパティに気付きました。私は、FrameworkElementFactoryクラスを使用していることに気付きました。しかし、私はそれを動作させるように見えることはできません。実行時にWPF ControlTemplateを定義する
実行時にControlTemplateを作成することはできますか?
はい、これはFrameworkElementFactoryを使用して行うことができます。 Charles Petzoldは、この「アプリケーション=コード+マークアップ」の第11章でこのウォークスルーを行っていますが、基本的な考え方は、テンプレートルート要素(さらにはすべての子要素のファクトリ)のFrameworkElementFactoryを作成し、ControlTemplateを作成し、 ControlTemplateのVisualTreeプロパティをFrameworkElementFactoryに設定します。
FrameworkElementFactory borderFactory = new FrameworkElementFactory(typeof(Border));
// set properties and create children of borderFactory
ControlTemplate template = new ControlTemplate();
template.VisualTree = borderFactory;
myButtonInstance.Template = template;
WPFコントロールクラスには、実行時にaを設定できる「テンプレート」プロパティがあります。