none
WPF指针样式的图片旋转时怎么控制空心啊。 RRS feed

  • 问题

  • WPF指针样式的图片旋转时怎么控制空心啊。

    现在旋转的时候他是以图片的中间来旋转的,但是我想要的是以图片的底部来旋转

    <Window x:Class="WPF图片旋转中心偏移.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:WPF图片旋转中心偏移"
            mc:Ignorable="d"
            Title="MainWindow" Height="350" Width="525">
        <Grid>
            <Image Source="仪表_正常.png" Stretch="None"/>
            <Image Source="指针_正常.png" Stretch="None" RenderTransformOrigin="0.5,0.5" >
                <Image.RenderTransform>
                    <TransformGroup>
                        <ScaleTransform/>
                        <SkewTransform/>
                        <RotateTransform Angle="-79.987"/>
                        <TranslateTransform/>
                    </TransformGroup>
                </Image.RenderTransform>
            </Image>
        </Grid>
    </Window>
    

    2017年9月18日 15:10

答案


  • Hi 彭123,

    请尝试使用UIElement.RenderTransformOrigin 属性 来设定旋转的位置,比如你可以设置RenderTransformOrigin="0.5,1" 来指定图片以底部中心旋转30度。

      <Image x:Name="imagesss" HorizontalAlignment="Left" Height="68" Margin="72,81,0,0" VerticalAlignment="Top" Width="100" Source="bac.JPG"  RenderTransformOrigin="0.5,1">
                <Image.RenderTransform>
                    <TransformGroup>
                        <ScaleTransform/>
                        <RotateTransform Angle="30"/>
                        <TranslateTransform/>
                    </TransformGroup>
                </Image.RenderTransform>
            </Image>


    UIElement.RenderTransformOrigin 属性
    https://msdn.microsoft.com/zh-cn/library/system.windows.uielement.rendertransformorigin(v=vs.110).aspx


    Best Regards,

    Yohann Lu


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • 已标记为答案 彭123 2017年9月19日 14:09
    2017年9月19日 5:11
    版主

全部回复


  • Hi 彭123,

    请尝试使用UIElement.RenderTransformOrigin 属性 来设定旋转的位置,比如你可以设置RenderTransformOrigin="0.5,1" 来指定图片以底部中心旋转30度。

      <Image x:Name="imagesss" HorizontalAlignment="Left" Height="68" Margin="72,81,0,0" VerticalAlignment="Top" Width="100" Source="bac.JPG"  RenderTransformOrigin="0.5,1">
                <Image.RenderTransform>
                    <TransformGroup>
                        <ScaleTransform/>
                        <RotateTransform Angle="30"/>
                        <TranslateTransform/>
                    </TransformGroup>
                </Image.RenderTransform>
            </Image>


    UIElement.RenderTransformOrigin 属性
    https://msdn.microsoft.com/zh-cn/library/system.windows.uielement.rendertransformorigin(v=vs.110).aspx


    Best Regards,

    Yohann Lu


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • 已标记为答案 彭123 2017年9月19日 14:09
    2017年9月19日 5:11
    版主
  • 感谢版主的答复。

    补充下:旋转了时候要判断下角度,例如-90的时候要给margin left+3个像素啥的。否则感觉中心还是偏了。

    2017年9月19日 14:10