Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 从用户控件访问转换';s风格_Wpf_Xaml_Styles - Fatal编程技术网

Wpf 从用户控件访问转换';s风格

Wpf 从用户控件访问转换';s风格,wpf,xaml,styles,Wpf,Xaml,Styles,我为UserControl提供了一些XAML,大致如下所示: <UserControl> <UserControl.RenderTransform> <ScaleTransform ScaleX="1" ScaleY="1" /> </UserControl.RenderTransform> <UserControl.Style> <Style TargetType="Use

我为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>
<Setter Property="RenderTransform">
    <Setter.Value>
        <ScaleTransform ScaleX="0.5" ScaleY="0.5" />
    </Setter.Value>
</Setter>

但是当我编译时,我得到了一个错误:

无法解析样式属性“ScaleX”。验证拥有 类型是样式的TargetType,或使用Class.Property语法 指定属性

我尝试过各种属性的排列,但我找不到一种真正有效的。在其他情况下,我将只命名ScaleTransform并使用TargetName引用它。但是不能在样式设置器中使用TargetName

我想我的选择是这样的:

<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>
<Setter Property="RenderTransform">
    <Setter.Value>
        <ScaleTransform ScaleX="0.5" ScaleY="0.5" />
    </Setter.Value>
</Setter>

但这似乎有点严厉


我肯定我错过了什么。但是我确实需要一些帮助。

设置程序不允许属性路径。如果您的场景允许,则使用新的转换切换整个转换。或者,您可以使用单帧动画,它甚至更重。

相关:谢谢H.B.-我恐怕是这样的。但我倾向于认为我做错了什么:)@Tim:遗憾的是,样式设置有很多限制,另一个限制是不能将多个样式应用于一个控件,这在某些情况下非常有用。