Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 围绕点旋转图像并平移_C#_Wpf_Xaml_Transformation - Fatal编程技术网

C# 围绕点旋转图像并平移

C# 围绕点旋转图像并平移,c#,wpf,xaml,transformation,C#,Wpf,Xaml,Transformation,我可以围绕图像的左上角旋转图像,但我需要围绕蓝色x(“0.5,1”)旋转图像。RenderTransferMorigin不会这么做。 我的图像也需要翻译成黑色椭圆 <Image x:Name="hut1" Visibility="Visible" Stretch="Fill" Canvas.Left="0" Canvas.Top="0" Height="100" Width="100" RenderTransformOrigin="0,0"> <Image.Ren

我可以围绕图像的左上角旋转图像,但我需要围绕蓝色x(“0.5,1”)旋转图像。RenderTransferMorigin不会这么做。 我的图像也需要翻译成黑色椭圆

 <Image x:Name="hut1" Visibility="Visible" Stretch="Fill" Canvas.Left="0"  Canvas.Top="0" Height="100" Width="100" RenderTransformOrigin="0,0">
     <Image.RenderTransform>
           <TransformGroup>
                <ScaleTransform ScaleX="1" ScaleY="1"  />
                <RotateTransform CenterX="0" CenterY="0"  Angle="-11" />
                <TranslateTransform X="30" Y="150" />
          </TransformGroup>
    </Image.RenderTransform>
    <Image.Source>
          <BitmapImage UriSource="\Hat.png"/>
    </Image.Source>
</Image>


Canvas.Left
Top
属性设置为应用于椭圆的相同值。然后使用
renderTransferMorigin
TranslateTransform
将图像转换到正确的相对位置:

<Image x:Name="hut1" Stretch="Fill"
       Canvas.Left="30" Canvas.Top="150"
       Height="100" Width="100"
       RenderTransformOrigin="0.5,1"
       Source="\Hat.png">
    <Image.RenderTransform>
         <TransformGroup>
             <ScaleTransform ScaleX="1" ScaleY="1" />
             <RotateTransform Angle="-11" />
             <TranslateTransform X="-50" Y="-100" />
         </TransformGroup>
     </Image.RenderTransform>
</Image>

下面是一个来自旋转点位于中下方的图像的快速片段

HorizontalAlignment="Left" Height="100" Margin="196,99,0,0" VerticalAlignment="Top" Width="100" RenderTransformOrigin="0.523,1.111"/>
(本例中的RenderTransferMorigin)


希望这对您有所帮助:)

请不要将代码作为图像共享。请注意,椭圆是上/左对齐的。为了将其居中绘制,请添加
Margin=“-2.5”
HorizontalAlignment="Left" Height="100" Margin="196,99,0,0" VerticalAlignment="Top" Width="100" RenderTransformOrigin="0.523,1.111"/>