从UserControl的样式访问转换

时间:2011-11-04 16:18:49

标签: wpf xaml styles

我有一个看起来像这样的UserControl的XAML:

<UserControl>
    <UserControl.RenderTransform>
        <ScaleTransform ScaleX="1" ScaleY="1" />
    </UserControl.RenderTransform>
    <UserControl.Style>
        <Style TargetType="UserControl">
            <Style.Triggers>
                <DataTrigger Binding="..." Value="...">
                    <Setter Property="RenderTransform.ScaleX" Value="0.5" />
                    <Setter Property="RenderTransform.ScaleY" Value="0.5" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </UserControl.Style>
</UserControl>

但是当我编译时,我收到错误:

  

无法解析样式属性'ScaleX'。验证拥有   type是Style的TargetType,或者使用Class.Property语法来   指定属性。

我尝试过各种各样的物业排列,但我找不到真正有效的排列。在其他情况下,我只会命名ScaleTransform并使用TargetName引用它。但是你不能在Style Setter中使用TargetName。

我想我的替代方案是这样的:

<Setter Property="RenderTransform">
    <Setter.Value>
        <ScaleTransform ScaleX="0.5" ScaleY="0.5" />
    </Setter.Value>
</Setter>

但这似乎有点严厉。

我确定我只是遗漏了一些东西。但我真的可以在这里使用一些帮助。

1 个答案:

答案 0 :(得分:2)

Setter不允许属性路径。如果您的方案允许它使用新的转换整个转换。或者,您可以使用单帧动画,这甚至更重。