2009-12-29 33 views
1

我有一个旋转15度的Silverlight中的矩形形状。它充满了图像。 SL的正常行为是使用它的父项(在这种情况下是矩形)旋转填充对象。如何忽略变形填充对象的形状(Silverlight)?

有什么办法可以忽略Fill对象的变换效果吗?我希望图像继续在屏幕上向北。

这里是我下面的XAML。我想看看是否有财产或其他方式不旋转 ImageBrush(image2.png)。

<Rectangle x:Name="Rectangle_5_ID6" RenderTransformOrigin="0.5 0.5" Height="24" Width="78" Stroke="#000000" StrokeThickness="1" Canvas.Top="25" Canvas.Left="25"> 
    <Rectangle.RenderTransform> 
     <TransformGroup> 
     <RotateTransform Angle="15" /> 
     </TransformGroup> 
    </Rectangle.RenderTransform> 
    <Rectangle.Fill> 
     <ImageBrush ImageSource="image2.png" /> 
    </Rectangle.Fill> 
    </Rectangle> 

回答

1

有许多不同的方法,但我怀疑,适合您需要的最好的办法是使用一个Path而不是一个。

<Path x:Name="Rectangle_5_ID6" Stroke="Black" StrokeThickness="1" > 
    <Path.Data> 
     <RectangleGeometry Rect="0, 0, 78, 24" > 
      <RectangleGeometry.Transform> 
       <RotateTransform Angle="15" CenterX="39" CenterY="12" /> 
      </RectangleGeometry.Transform> 
     </RectangleGeometry> 
    </Path.Data> 
    <Path.Fill> 
     <ImageBrush ImageSource="image2.png" /> 
    </Path.Fill> 
</Path> 

路径结束具有可以容纳所有的几何形状在其数据包含与填充吸入到该区域的矩形区域。矩形几何图形是在应用了旋转变换的情况下绘制的,并且只有在几何体内部出现的填充部分实际上是可见的,其余部分被剪切。因此你得到了期望的输出。

+0

这很好,谢谢安东尼! – 2009-12-30 00:53:37