我确实遇到了WPF文档中描述的问题:
http://msdn.microsoft.com/en-us/library/aa970500.aspx
引用:
因为瓷砖刷比其他刷更复杂,所以应用了 RelativeTransform to one可能会产生意外结果。对于 例如,请拍摄以下图像。
以下示例使用ImageBrush绘制矩形区域 与前面的图像。它将RotateTransform应用于 ImageBrush对象的RelativeTransform属性,并设置其Stretch 属性为UniformToFill,应该保留图像的方面 拉伸以完全填充矩形时的比率。
<Rectangle Width="200" Height="100" Stroke="Black" StrokeThickness="1"> <Rectangle.Fill> <ImageBrush Stretch="UniformToFill"> <ImageBrush.ImageSource> <BitmapImage UriSource="sampleImages\square.jpg" /> </ImageBrush.ImageSource> <ImageBrush.RelativeTransform> <RotateTransform CenterX="0.5" CenterY="0.5" Angle="90" /> </ImageBrush.RelativeTransform> </ImageBrush> </Rectangle.Fill> </Rectangle>
此示例生成以下输出:
请注意,即使画笔的拉伸,图像也会失真 被设置为UniformToFill。那是因为相对变换是 在画笔的Viewbox映射到其视口后应用。
有没有人知道解决这个问题的伎俩?