我还在学习如何在WPF中制作应用程序,而且我还在苦苦挣扎。
我试图围绕其中心旋转各个矩形,但它们围绕放置它的画布旋转。我读到了RenderTransformOrigin,我把它设置为0.5,0.5,但它仍然相对于画布旋转。
<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 =&#34; False&#34;在矩形上,但我得到相同的结果。
答案 0 :(得分:1)
只需将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>