在WPF中,如何围绕图像的中心而不是围绕其所在的画布旋转图像,C#
我还在学习如何用WPF制作应用程序,我有点挣扎 我试着围绕它的中心旋转单个矩形,但它们正在围绕它所在的画布旋转。我读到了RenderTransferMorigin,我将它设置为0.5,0.5,但它仍然相对于画布旋转在WPF中,如何围绕图像的中心而不是围绕其所在的画布旋转图像,C#,c#,wpf,image,xaml,wpf-controls,C#,Wpf,Image,Xaml,Wpf Controls,我还在学习如何用WPF制作应用程序,我有点挣扎 我试着围绕它的中心旋转单个矩形,但它们正在围绕它所在的画布旋转。我读到了RenderTransferMorigin,我将它设置为0.5,0.5,但它仍然相对于画布旋转 <ItemsControl Name="canvasDataBinding" HorizontalAlignment="Left" Height="256" Marg
<ItemsControl Name="canvasDataBinding"
HorizontalAlignment="Left"
Height="256"
Margin="294,35,0,0"
VerticalAlignment="Top"
Width="256"
ClipToBounds="False">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Background="#FFBBBBBB">
</Canvas>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Rectangle HorizontalAlignment="Left"
Height="{Binding Height}"
Width="{Binding Width}"
Stroke="Black"
VerticalAlignment="Top"
RenderTransformOrigin="0.5,0.5">
<Rectangle.RenderTransform>
<TransformGroup>
<TranslateTransform X="{Binding OffsetX}" Y="{Binding OffsetY}"/>
<RotateTransform CenterX="0.5" CenterY="0.5" Angle="{Binding Angle}"/>
</TransformGroup>
</Rectangle.RenderTransform>
<Rectangle.Fill>
<ImageBrush ImageSource="{Binding Name}">
</ImageBrush>
</Rectangle.Fill>
</Rectangle>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
以下是它目前正在做的事情:
编辑:
这是我使用ImageBrush.RelativeTransform应用旋转时的结果
我尝试在矩形上设置ClipToBounds=“False”,但我得到了相同的结果。只需在图像上而不是在矩形上设置RelativeTransform
<Image ImageSource="{Binding Name}">
<ImageBrush.RelativeTransform>
<TransformGroup>
<TranslateTransform X="{Binding OffsetX}" Y="{Binding OffsetY}"/>
<RotateTransform CenterX="0.5" CenterY="0.5" Angle="{Binding Angle}"/>
</TransformGroup>
</ImageBrush.RelativeTransform>
</ImageBrush>
谢谢。这是我想要的旋转方式,但现在图像被矩形剪裁。我用一张图片编辑了我的帖子。你没有看到矩形吗?没有。我只需要图片。我的印象是我需要把图像放在某个东西里面。我可以用多个图像填充画布吗?我只是开始使用wpf,所以我还不太清楚。@Infodayne是的,这里不需要矩形,只需使用图像并在图像内部使用rendertransform即可摆脱矩形。现在我只有一个图像,我正在使用RenderTransform。但是,我不能使用RelativeTransform,因为它不是ImageBrush,所以它会再次围绕画布旋转。