WPF 3Dオブジェクトベースのキャプチャマウスクリックイベント

ModelUIElment3D
UIElment3DはModelVisual3Dを交換し、.NET3.5新しいカテゴリです。2つのModelVisual3D派生クラスModelUIElment3DとContainerUIElment3Dがあります。ModelVisual3D最大の違いとModelUIElment3DはHItTestを使用せずに、特定の3Dオブジェクトモデルマウスクリックを検出する、ということです。イベントのMouseLeftButtonDownの代わりに、標準の2D名。

新しいWPFプロジェクト
オープンVs2015、新しいフォームのメインウィンドウを作成し、新しいWPFプロジェクトを作成します。

设置背景颜色
<Grid.Background>
<DrawingBrushビューポート= "0,0,0.05,0.05" TILEMODE = "FlipXY">
<DrawingBrush.Drawing>
<DrawingGroup>
<GeometryDrawingブラシ= "黒"幾何学= "M0,0 L1、 0 L1,1 L0,1" />
<GeometryDrawingブラシ= "DarkBlueに"ジオメトリ= "M0,0.5 L0.5,0.5 L0.5,1 L0,1" />
<GeometryDrawingブラシ= "DarkBlueに"ジオメトリ= "M0 .5,0 L1,0 L1,0.5 L0.5,0.5" />
</ DrawingGroup>
</DrawingBrush.Drawing>
</ DrawingBrush>
</Grid.Background>

增加Viewport3D
<Viewport3D>
<Viewport3D.Camera>
<PerspectiveCameraポジション= "0,0,7" LookDirection = "0,0、-1" />
</Viewport3D.Camera>
</ Viewport3D>

增加ModelUIElement3D
<Viewport3D.Children>
<ModelUIElement3D X:名= "モデル"のMouseLeftButtonDown = "model_MouseLeftButtonDown">
<ModelUIElement3D.Model>

<GeometryModel3D X:名= "ティーポット">
<GeometryModel3D.Material>
<EmissiveMaterialブラシ= "赤" />
</GeometryModel3D.Material>

<GeometryModel3D.Geometry>モデルデータを省略し、又は一般ZAM3D 3dmaxobjによって引き出される場合には、自動的にインポート生成しました。
</GeometryModel3D.Geometry>
</ GeometryModel3D>

</ModelUIElement3D.Model>
</ ModelUIElement3D>
</Viewport3D.Children>

マウスイベントコードに対する応答を書き込み
専用空隙model_MouseLeftButtonDown(オブジェクト送信者、MouseButtonEventArgs E)
{
MessageBox.Show( "1クリック");
}

おすすめ

転載: www.cnblogs.com/lingzhihua/p/11125824.html