XAML WPF旋转图像不需要剪切到边界

kxxlusnw  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(146)

我有一个朝阳图像我试图在一个窗口旋转。我有它旋转刚刚好,但图像是一个大正方形,所以它填补了窗口的比例。然而,当它旋转,图像是窗口的确切形状。我以为它会填充窗口并在窗口的“外部”旋转,以给予完整的图片效果。不确定这是否正确地解释了它。窗口是800 x 450,图像是918 x 918(我做了我需要的大小的数学)。这是它的样子。


的数据
我想让它在旋转时填满整个窗口,但我不知道。这是我的完整代码。虽然我没有在我发布的图片中显示lblPlayer标签。

<Window x:Class="currentPlayer"
    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:DartOverviewHistory"
    mc:Ignorable="d"
    Title="currentPlayer" Height="450" Width="800" WindowStyle="None" WindowState="Maximized" ResizeMode="NoResize" Background="Black" >
<Window.Resources>
  
</Window.Resources>
<Grid>     
    <Image Source="/images/finalStar.png" Width="918" Height="918" HorizontalAlignment="Center" VerticalAlignment="Center" Opacity=".3">
        <Image.RenderTransform>
            <RotateTransform CenterX="459" CenterY="459" />
        </Image.RenderTransform>
        <Image.Style>
            <Style>
                <Style.Triggers>
                    <Trigger Property="Image.IsEnabled" Value="True">
                        <Trigger.EnterActions>
                            <BeginStoryboard>
                                <Storyboard>
                                    <DoubleAnimation
                                Storyboard.TargetProperty="RenderTransform.Angle"
                                From="0"
                                To="360"
                                Duration="0:1:0"
                                RepeatBehavior="Forever" />
                                </Storyboard>
                            </BeginStoryboard>
                        </Trigger.EnterActions>
                    </Trigger>
                </Style.Triggers>
            </Style>
        </Image.Style>
    </Image>          
    <Viewbox x:Name="vb1" Visibility="Visible">
        <Label x:Name="lblPlayer" Content="CAROLINE" Foreground="White" FontFamily="Cascadia Code" FontWeight="Bold" Background="Transparent"/>
    </Viewbox>
   
    <Label Margin="591,308,0,0" />

</Grid>

字符串
不知道我做错了什么。谢谢你在这件事上给予的任何帮助。

vuktfyat

vuktfyat1#

该图像明显被“窗口”布局剪切。
您可以通过一个不裁剪其子元素的附加Canvas元素来解决此问题:

<Grid>
    <Canvas Width="918" Height="918"
            HorizontalAlignment="Center" VerticalAlignment="Center">
        <Image Source="/images/finalStar.png"
               Width="918" Height="918" Opacity=".3">
            <Image.RenderTransform>
                <RotateTransform CenterX="459" CenterY="459"/>
            </Image.RenderTransform>
            <Image.Style>
                ...
            </Image.Style>
        </Image>
    </Canvas>
    ...
</Grid>

字符串

yx2lnoni

yx2lnoni2#

减去保证金也可以。

<Grid>
    <Image Source="/images/finalStar.png"
           Width="918" Height="918" Margin="-59 -234"
           HorizontalAlignment="Center" VerticalAlignment="Center"
           Opacity=".3"
           RenderTransformOrigin="0.5 0.5">
        <Image.RenderTransform>
            <RotateTransform/>
        </Image.RenderTransform>
        <Image.Style>
            ...
        </Image.Style>
    </Image>
</Grid>

字符串

相关问题