wpf - 在wpf中使用transformgroup会出现错误

标签 wpf

我正在寻找在一个对象中组合多个变换的方法,但问题是当我尝试放置 transformgroup 时,它给出了一个错误“无法解析中的所有属性引用属性路径“RenderTransform.ScaleX”。验证适用的对象是否支持这些属性。”

这是我从网上复制的转换代码(“感谢那些制作此代码的人”)

    <Window.Resources>
    <Storyboard x:Key="expandStoryboard">
        <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" 
    To="1.3" Duration="0:0:0.2" />
        <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY"
    To="1.3" Duration="0:0:0.2" />
    </Storyboard>
    <Storyboard x:Key="shrinkStoryboard">
        <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX"
    To="1" Duration="0:0:0.2" />
        <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY"
    To="1" Duration="0:0:0.2" />
    </Storyboard>
    <Storyboard x:Key="shakeStoryBoard">
        <DoubleAnimation Storyboard.TargetProperty="RenderTransform.Angle"
                            From="-5" To="5" Duration="0:0:0.05" 
                            AutoReverse="True"
                            RepeatBehavior="3x"
                            FillBehavior="Stop" />
    </Storyboard>

这是我的对象(按钮)

        <Button RenderTransformOrigin="0.5,0.5" Background="Transparent" Focusable="False"  BorderBrush="Transparent"  Height="220" HorizontalAlignment="Left" Margin="591,213,0,0" Name="cmdsettings" VerticalAlignment="Top" Width="189">
        <StackPanel Orientation="Vertical" HorizontalAlignment="Center"  VerticalAlignment="Center" Width="217" Height="220">
            <Image HorizontalAlignment="Center" VerticalAlignment="Center"   Source="Images/settings.png" Height="192" Width="204" />
            <TextBlock VerticalAlignment="center" TextAlignment="center" FontSize="16" Width="123" Foreground="white" FontWeight="Bold" Height="20">Settings</TextBlock>
        </StackPanel>
        <Button.Triggers>
            <EventTrigger RoutedEvent="Button.MouseEnter">
                <BeginStoryboard Storyboard="{StaticResource expandStoryboard}" />
            </EventTrigger>
            <EventTrigger RoutedEvent="Button.MouseLeave">
                <BeginStoryboard Storyboard="{StaticResource shrinkStoryboard}" />
            </EventTrigger>
            <EventTrigger RoutedEvent="Button.Click">
                <BeginStoryboard Storyboard="{StaticResource shakeStoryBoard}" />
            </EventTrigger>
        </Button.Triggers>
        <Button.RenderTransform >
            <TransformGroup>
                <ScaleTransform ScaleX="1" ScaleY="1"/>
                <RotateTransform />
            </TransformGroup>                    
        </Button.RenderTransform>
    </Button>

最佳答案

由于 Button.RenderTransform 包含 TransformGroup,因此您必须通过其 Children 访问包含的 Transforms。属性:

<DoubleAnimation Storyboard.TargetProperty="RenderTransform.Children[0].ScaleX" ... />  
<DoubleAnimation Storyboard.TargetProperty="RenderTransform.Children[0].ScaleY" ... />
<DoubleAnimation Storyboard.TargetProperty="RenderTransform.Children[1].Angle" ... />

关于wpf - 在wpf中使用transformgroup会出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10714464/

相关文章:

wpf - 在 WPF 中更改 View 时,ViewModel 中的文本框值未更新

c# - "DateTime?"和 "DateTime"之间的差异。 (试图从日期选择器中获取值(value))

c# - WPF/Caliburn.Micro - 使用 IDataErrorInfo 进行输入验证

c# - XAML 内联数据绑定(bind)不起作用;绑定(bind)作品背后的代码

c# - 禁用基于绑定(bind)值 WPF 的 ListBox 项的选择

wpf - 边距和填充和边界框的贡献有什么区别?

.net - WPF 数据网格行删除线

wpf - 基类 `Application` 在一种解决方案中未被识别为类型

wpf - 如何使 XmlnsDefinition 在本地程序集上工作?

c# - MS Surface 沿直线为 SVI 设置动画