【问题标题】:Accessing a Transform from a UserControl's Style从用户控件的样式访问转换
【发布时间】:2011-11-04 16:18:49
【问题描述】:

我有一些 XAML 用于 UserControl,大致如下所示:

<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 引用它。但是您不能在样式设置器中使用 TargetName。

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

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

但这似乎有点过分了。

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

【问题讨论】:

标签: wpf xaml styles


【解决方案1】:

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

【讨论】:

  • 谢谢 H.B. - 我担心是这样的。但我倾向于认为我做错了什么:)
  • @Tim:遗憾的是,样式有很多限制,例如,不能将多种样式应用于一个控件,这在某些情况下会非常有用。
猜你喜欢
  • 2019-01-13
  • 1970-01-01
  • 2016-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-27
相关资源
最近更新 更多