wpf 3dオブジェクトにズーム機能を実装しようとしています。私のオブジェクトからトリガするときはうまく動作しています。しかし私はオブジェクトを含む私の全体のスペースのためにこの機能をしたい。どのように私はウィンドウ全体のズーム機能を実装することができますので、私はウィンドウの任意の場所からマウスホイール、私のオブジェクトが拡大され、ズームアウトされます。ここ は、マウスホイールイベントのために私のコードです:ここではWpf3dウィンドウの拡大表示
private void Grid_MouseWheel(object sender, MouseWheelEventArgs e)
{
TheCamera.Position = new Point3D((TheCamera.Position.X - e.Delta/360D), (TheCamera.Position.Y - e.Delta/360D), (TheCamera.Position.Z - e.Delta/360D));
}
は私のXAMLコードで、
`
<Viewport3D x:Name="MainViewport">
<Viewport3D.Camera>
<PerspectiveCamera x:Name="TheCamera" Position="-40,40,40" LookDirection="40,-40,-40 "
UpDirection="0,0,1" />
</Viewport3D.Camera>
<ModelVisual3D>
<ModelVisual3D.Content>
<Model3DGroup>
<DirectionalLight Color="White" Direction="-1,-1,-3" />
<GeometryModel3D x:Name="mGeo">
<GeometryModel3D.Geometry>
<MeshGeometry3D Positions="0,0,0 10,0,0 10,10,0 0,10,0 0,0,10
10,0,10 10,10,10 0,10,10"
TriangleIndices="0 1 3 1 2 3 0 4 3 4 7 3 4 6 7 4 5 6
0 4 1 1 4 5 1 2 6 6 5 1 2 3 7 7 6 2"/>
</GeometryModel3D.Geometry>
<GeometryModel3D.Material>
<DiffuseMaterial Brush="Red"/>
</GeometryModel3D.Material>
</GeometryModel3D>
</Model3DGroup>
</ModelVisual3D.Content>
</ModelVisual3D>
</Viewport3D>
</Grid>
`
ウィンドウのマウスホイールイベントにイベントをフックすることができ代わりにあなたはイベントが発砲しないと言っていますか、ズーム動作が期待どおりではないと言っていますか? –
ズーム動作が期待通りではないと言っています。私のマウスが3dオブジェクトだけを指している間、それは働いています。私はマウスを指差してズームしたい。それは明確ですか? – Aarav
あなたのウィンドウのいくつかの例xamlを投稿できますか? –