ハマっている「お菓子」を教えて!

ElementHostタスクにWPFが表示されない
環境: Windows7, .NetFrameWork3.5SP1 VisualStudio2008

WPF入門書で勉強中ですが、その最後の項目「WindowsフォームAPでWPFコントロールを使う」が説明通りにできません。
次のように行いました
1. WindowsフォームAPプロジェクトを作成
2. WPFユーザコントロールをソリューションに追加
3 PresentationCore.dllなどを「参照の追加」で追加
4.ElementHostコントロールをフォームに配置
5. ソリューションをビルド
 ※これで、ElementHostタスクにWPFユーザコントロールが表示されることになっていますが表示されません。

入門書付属のサンプルではWPFユーザコントロールが表示されています。
しかし、そのフォームにもう1つElementHostコントロールを追加してみると、そちらは表示されません。

また、以下のように、ElementHostコントロールのChildにWPFユーザコントロールを設定するコードを入れてみましたが駄目でした。
Imports System.Windows.Forms.Integration
Imports IDPass ' WPF user control
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Dim host As New ElementHost()
host.Dock = DockStyle.Fill

' Create the WPF UserControl.
Dim uc As New IDPass.UserControl1()

' Assign the WPF UserControl to the ElementHost control's
' Child property.
host.Child = uc

' Add the ElementHost control to the form's
' collection of child controls.
Me.Controls.Add(host)
End Sub
End Class

どなたか分かる方がいましたらご教授ください。

A 回答 (1件)

ちょっと確認させてください。



ビルドされた後、アセンブリが生成されて、ツールボックスに作成されたWPFユーザーコントロールが表示されていると思います。
そのツールボックスのユーザーコントロールをフォームに配置して、そのコントロールのElementHostタスクに表示されないということですか?

それとも、WPFユーザーコントロールを作成・ビルドして、それを、先にフォームに配置されたWPFコントロール(WPF相互運用機能:ElementHostコントロール)のChildプロパティにそのコントロール名を設定できないということですか?

どちらにせよ、こちらの環境では問題なく表示されましたので、順番を変えてみたらいかがでしょうか。
1.~3.までを行なって、先にソリューションをビルドする。
それからフォームをデザイナで表示して、作成されたWPFユーザーコントロールがツールボックスに表示されていますので、それをフォームに配置する。とかとか
    • good
    • 0
この回答へのお礼

有難うございます。お陰さまで解決いたしました。

教えていただいたことは全て試してみましたが、ツールボックスにWPFユーザーコントロールが表示されませんでした。

それで、その原因を探してみると、オプションの[AutoToolboxPopulate]がFalseでしたので、これをTrueに変更してみましたら、WPFユーザーコントロールが表示されるようになりました。

入門書には、ツールボックスに表示されることは一言も触れられておりませんし、VisualStudioもエラーメッセ―ジを表示しないため、糸口も掴めず諦めかけておりました。

これで漸く、プログラム開発がスタートできます。本当にありがとうございました。

お礼日時:2010/09/07 13:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報