2012-04-24 17 views
1

I以下のXAMLました:私のテクスチャのみを0から0.5に行く座標ので、半分だけ勾配が(使用されるためには絶対にWPF 3DでLinearGradientBrushテクスチャをスケーリング

<Viewport3D> 
     <Viewport3D.Camera> 
     <OrthographicCamera FarPlaneDistance="100" LookDirection="0, 0,-1" UpDirection="0,1,0" NearPlaneDistance="1" Position="0,0,5" Width="10" /> 
     </Viewport3D.Camera> 
     <ModelVisual3D> 
     <ModelVisual3D.Content> 
     <DirectionalLight Color="White" Direction="0,0,-1" /> 
     </ModelVisual3D.Content> 
     </ModelVisual3D> 
     <ModelVisual3D> 
     <ModelVisual3D.Content> 
      <GeometryModel3D> 
      <GeometryModel3D.Material> 
       <DiffuseMaterial> 
       <DiffuseMaterial.Brush> 
        <LinearGradientBrush> 
        <GradientStop Color="Yellow" Offset="0" /> 
        <GradientStop Color="Blue" Offset="1" /> 
        </LinearGradientBrush> 
       </DiffuseMaterial.Brush> 
       </DiffuseMaterial> 
      </GeometryModel3D.Material> 
      <GeometryModel3D.Geometry> 
       <MeshGeometry3D Positions="-1,-1,0 -1,1,0 1,1,0 1,-1,0" TriangleIndices="0,2,1 2,0,3" TextureCoordinates="0,0 .5,0, .5,.5 0,.5"/> 
      </GeometryModel3D.Geometry> 
     </GeometryModel3D> 
     </ModelVisual3D.Content> 
    </ModelVisual3D> 
    </Viewport3D> 

私はをしたいがあります)。残念ながら、LinearGradientBrushは、使用されるテクスチャ座標に関係なく、ジオメトリを塗りつぶすように伸びています。

ViewportUnits="Absolute"を使用してTileBrush派生ブラシでこれを修正できますが、LinearGradientBrushの修正方法はわかりません。何か案は?

答えて

2

は、フルサイズのRectangleGeometryLinearGradientBrushを使用し、DrawingBrushであることを使用します。

<DrawingBrush ViewportUnits="Absolute"> 
    <DrawingBrush.Drawing> 
     <GeometryDrawing> 
      <GeometryDrawing.Geometry> 
       <RectangleGeometry Rect="0,0,1,1" /> 
      </GeometryDrawing.Geometry> 
      <GeometryDrawing.Brush> 
       <LinearGradientBrush> 
        <GradientStop Color="Yellow" Offset="0" /> 
        <GradientStop Color="Green" Offset="0.5" /> 
        <GradientStop Color="Blue" Offset="1" /> 
       </LinearGradientBrush> 
      </GeometryDrawing.Brush> 
     </GeometryDrawing> 
    </DrawingBrush.Drawing> 
</DrawingBrush> 
+0

ありがとう@marklamを働く必要があります設定しますチャーム! –

1

LinearGradientBrushのMappingMode =「絶対に」のように動作し、

関連する問題