簡體   English   中英

如何在WPF,C#中圍繞其中心而不是其上的畫布旋轉圖像

[英]How to rotate image about its centre rather than about the canvas it is on in WPF, C#

我仍在學習如何在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 =“ 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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM