WPF一覧

WPF TreeView で破線付きを作ってみた

昔の Windows のツリーコントロールは破線によって項目が繋がっていたような気がします。
そんなツリーコントロールが WPF で実現できないかと思って試してみました。

まずは以下のページの情報を基本として使わせてもらいました。
https://stackoverflow.com/questions/19560466/how-to-make-wpf-treeview-style-as-winforms-treeview
http://d.hatena.ne.jp/Tan90909090/20150705/1436085068

こうして出来上がったのが以下のようなものです。

ただフォルダの開閉が思うように動いて、ぱっと見た感じの印象は悪くないのですが、実が項目の選択が出来ないという問題が残っています。

標準のテンプレートを変更してみる

標準の TreeView および TreeViewItem のテンプレートをカスタムする方向で再度トライしてみました。標準のスタイルとテンプレートはこちら、「TreeView のスタイルとテンプレート」 にて公開されています。

これを基本として、破線を書くようにしてみたものがこちらです。

TreeViewItem の中身が、Grid によって”田”のように区切られており、使用されていない箇所で条件によって破線を描画するようなパーツを配置して実現しています。

  • 項目末尾の部分(画面内での readme フォルダ)の部分の破線処理の補正
  • フォルダのアイコン
  • フォルダ開閉のボタンを田に変更する

このような点を修正したら、(記憶にある)昔ながらの TreeView になるのではと思っています。


Vulkan と WPF

年末年始のタイミングで Vulkan を少し勉強してみました。個人的な印象では DirectX12 よりも難しい感触がありました。
しかしながら、発表からある程度の時間が経っており、情報も比較的多くあったため三角形を1枚出せるところまで到達できました。
既に先陣を切ってくれた人が情報を公開してくれていたのが大変参考になりました。

続きを読む


ドッキングウィンドウ on WPF での OpenGLView

前回の延長戦で、ドッキングウィンドウとの組み合わせを試してみました。
ドッキングウィンドウには AvalonDock (WPF Extended Toolkit 付属) を用いています。

はじめに

AvalonDock でドッキング可能なドキュメントとして、前回の カスタム版 D3D11Image を貼り付けています。
ここに OpenGL の描画をはめ込む形です。

今までのものと大きく異なるのは以下の点だと思います。

  • 独立したウィンドウになることがある(フローティングウィンドウ)
  • 表示/非表示のタイミング
  • Window に貼り付けられているわけでなく UserControl 以下

これらの条件変化によって、動きが変わるかを確認してみました。

wpf_avalondock_ogl
続きを読む


WPF で OpenGL の描画はめ込み

WPF アプリで OpenGL の描画結果をはめ込めたらいいなと思ってトライしてみることにしました。
WPF は DirectX9 で動いているため、またアプリ全体で1つのウィンドウハンドルとなっているため、従来の C# フォームアプリのように特定の部分だけ描画を任せるというようなことが難しくなっています。

続きを読む