概要
HelixToolkitは、HelixViewport3Dタグの中に3Dオブジェクトが表示されます。
見た目からすると3Dオブジェクトに対して、ユーザー操作することが可能な様に見えるのですが、APIとサンプルコードを調べた限りでは、WPFのUIElement派生クラスのようなイベント操作は出来ないようです。
WPFから見ると3Dオブジェクトは、HelixViewport3Dというコントロールの上に描かれた模様に過ぎないということのようです。
クリック位置の3Dオブジェクトを取得する方法
HelixViewport3DのMouseDownイベントを監視し下記の方法で、3Dオブジェクトの参照を取得します。
Test.xaml.cs
private void MouseDownHandler(object sender, MouseButtonEventArgs e)
{
var p = e.GetPosition(this.viewport3d);
var hit = Viewport3DHelper.FindNearestVisual(this.viewport3d.Viewport, p);
if (hit != null)
{
// クリック操作
}
}