WPF 3D - Warum funktioniert mein ImageBrush nicht machen?
-
22-08-2019 - |
Frage
Ich habe eine 3D-Ebene, die ich versuche, mit einem ImageBrush zu machen, wie es DiffuseMaterial.Brush ist. Wenn ich eine SolidColorBrush verwende dann das Flugzeug scheint in Ordnung, aber ich bekomme nichts mit entweder einem ImageBrush oder einem VisualBrush.
Kann mir jemand sagen, warum? Hier ist der Code.
<ModelVisual3D>
<ModelVisual3D.Transform>
<RotateTransform3D CenterX="0" CenterY="0" CenterZ="0">
<RotateTransform3D.Rotation>
<AxisAngleRotation3D Axis="0 1 0" Angle="90"/>
</RotateTransform3D.Rotation>
</RotateTransform3D>
</ModelVisual3D.Transform>
<ModelVisual3D.Content>
<GeometryModel3D>
<GeometryModel3D.Geometry>
<MeshGeometry3D x:Name="frontmesh" TriangleIndices="
0 1 2
2 3 0">
<MeshGeometry3D.Positions>
<MultiBinding Converter="{StaticResource front}">
<Binding ElementName="UC" Path="CubeHeight" />
<Binding ElementName="UC" Path="CubeWidth" />
<Binding ElementName="UC" Path="CubeDepth" />
</MultiBinding>
</MeshGeometry3D.Positions>
</MeshGeometry3D>
</GeometryModel3D.Geometry>
<GeometryModel3D.Material>
<DiffuseMaterial>
<DiffuseMaterial.Brush>
<ImageBrush ImageSource="CF.jpg"
AlignmentX="Center" AlignmentY="Center"
Stretch="Fill"/>
</DiffuseMaterial.Brush>
</DiffuseMaterial>
</GeometryModel3D.Material>
</GeometryModel3D>
</ModelVisual3D.Content>
</ModelVisual3D>
Lösung
Haben Sie es,
I benötigt Mapping bereitzustellen Koordinaten für die Bürste zu machen. Die MeshGeometry3D sieht nun wie folgt -
<MeshGeometry3D x:Name="frontmesh" TriangleIndices="
0 1 2
2 3 0"
TextureCoordinates="0 1,1 1,1 0 ,0 0">
<MeshGeometry3D.Positions>
<MultiBinding Converter="{StaticResource front}">
<Binding ElementName="UC" Path="CubeHeight" />
<Binding ElementName="UC" Path="CubeWidth" />
<Binding ElementName="UC" Path="CubeDepth" />
</MultiBinding>
</MeshGeometry3D.Positions>
</MeshGeometry3D>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow