2012-04-24 23 views
1

我有以下XAML:絕對縮放一個LinearGradientBrush紋理WPF 3D

<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> 

是要使用只有一半的梯度(因爲我的紋理座標只能去從0到0.5 )。不幸的是,LinearGradientBrush正在拉伸以填充幾何圖形,而不管使用的紋理座標如何。

您可以使用ViewportUnits="Absolute"修復衍生畫筆TileBrush,但我不知道如何修復LinearGradientBrush。有任何想法嗎?

回答

2

使用LinearGradientBrush對全尺寸的RectangleGeometry,並用它在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的一個LinearGradientBrush設置MappingMode = 「絕對」,就像一個魅力! – 2012-04-24 12:05:31