|
分類:[VB.NET/VB2005 以降]
現在、VS2008-VBでWPFのAPを開発しています。そこで色々と検索してみましたがどうしても解らないので今回質問させていただきました。
簡単にWindowのリザイズ(XAML)ができるのでWPFにこだわっているのですが、WPFではWindowコントロールが普通に使えないものがたくさんあります。 もちろんWindowコントロールを別に作成しWindosFormsHostを使ってホストするのは簡単にできました。 しかしこの方法ではホストされたWindowコントロールにはリザイズが有効になりませんでした。そこでVBで直接WindosFormsHostのChildにセットしてみたところ思うような動きができました。
コードは以下のとおりなのですが...
Imports System.Windows.Forms Class Window1 Private Sub Window1_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
Dim TrView As New TreeView 'ツリービューを生成
'生成したTrViewのNodeを作成したコード記述 'TrViewのプロパティの設定したコード記述 Me.WindowsFormsHost.Child = Trview ’最後にTrViewをWindowsFormsHostにセット End Sub End Class
以上です。この方法だとツリービュー自体の動きはリザイズされるようになり考えているとおりの動き(リサイズ)が実現しました。 しかし、Windowから見ればWindowsFormsHostはセットされたTrViewではなくWindowsFormsHostそのものです。 セットしたTrViewのイベントを記述したくてもやり方がわかりません。WindowsFormsHostをTrViewそのものとして扱えればイベントごとの記述が可能だと思うのですが、そんな事は可能なのでしょうか? これは自分なりの解釈なので根本的に考え方が違うのであれば、それも一緒に教えていただきたいです。 また、ほかの方法などあれば教えてください。
|