Ich versuche, Zoom-Funktionalität zu meinem wpf 3D-Objekt zu implementieren. Es funktioniert gut, wenn ich es von meinem Objekt aus trigge. Aber ich möchte diese Funktionalität für meinen gesamten Raum einschließlich des Objekts tun. Wie kann ich diese Zoomfunktion für das gesamte Fenster implementieren? Wenn ich mit dem Mausrad von einem beliebigen Fensterfenster aus wechsle, wird mein Objekt vergrößert und verkleinert. Hier ist mein Code für Mousewheel-Ereignis:Wpf3d Zoomen für Fenster
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));
}
Hier ist mein XAML-Code,
`
<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>
`
Fenster Haken Sagen Sie, dass das Ereignis nicht ausgelöst wird oder sagen Sie, dass das Zoom-Verhalten nicht Ihren Erwartungen entspricht? –
Ich sage Zoom-Verhalten ist nicht mein erwartet. Es funktioniert, während meine Maus nur auf das 3D-Objekt zeigt. Ich möchte zoomen, ohne die Maus zu zeigen. Ist das klar ? – Aarav
Könnten Sie ein Beispiel für xaml Ihres Fensters posten? –