Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.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
C# 如何调用在xaml中以相同样式设置的另一个属性的样式属性设置器_C#_Wpf_Xaml - Fatal编程技术网

C# 如何调用在xaml中以相同样式设置的另一个属性的样式属性设置器

C# 如何调用在xaml中以相同样式设置的另一个属性的样式属性设置器,c#,wpf,xaml,C#,Wpf,Xaml,我正在用户控件中编写样式,以控制轴集合中单个轴的样式。这一切都可以实现,但现在我想集成AxisTitle的旋转。 但如果我执行以下操作(仅显示标题设置器): 然后旋转应用于axisbase,它是所有轴,而不仅仅是标题。(我理解原因) 但是如何更改代码以使此RenderTransform应用于AxisTitle 如果我对axis的一个特定实例执行此操作,会产生以下效果: <Resources> <Style x:Key="AxisTitleStyle" TargetT

我正在用户控件中编写样式,以控制轴集合中单个轴的样式。这一切都可以实现,但现在我想集成AxisTitle的旋转。
但如果我执行以下操作(仅显示标题设置器):


然后旋转应用于axisbase,它是所有轴,而不仅仅是标题。(我理解原因)
但是如何更改代码以使此RenderTransform应用于AxisTitle

如果我对axis的一个特定实例执行此操作,会产生以下效果:

<Resources>
    <Style x:Key="AxisTitleStyle" TargetType="myLib:AxisTitle">
        <Setter Property="RenderTransform">
            <Setter.Value>
                <RotateTransform Angle="90" />
            </Setter.Value>
        </Setter>
    </Style>
</Resources>

<Axis Style="{StaticResource AxisTitleStyle>/>


当然,我必须查看Axis可视化树才能确定您想要什么,但听起来好像您想要将转换应用到绑定到Axis中的Axis标题的xaml元素。毫无疑问,Axis是一个可视化的树,您可以使用Blend非常轻松地分解它(编辑现有模板)


有了Axis的完整现有样式模板后,可以调整实际引用/绑定到标题的位,以便可以动态应用变换。希望这有帮助……

这是第三方控制。Blend和Studio不会为轴创建模板。仅用于控件本身。我找不到任何轴。无论是谁创建控件,都有一个轴的可视树,对吗?您可以使用Snoop查看它。无论发生什么情况,都可以使用Blend提取样式。所有这些都是假定Axis是wpf控件…我偶然发现了要设置的属性。这是TitleStyle,我让它工作了。有了这些知识,我在Snoop中搜索了它(仍然无法让Blend按照你说的做,但可能是因为这是我第一次使用它:))。从我现在看到的情况来看,我无法推断如何以我现在的方式正确地做这件事。只有凭借我现在的知识,我才能在史努比中找到它。注:我是WPF的新手。好吧,这就是Snoop的用途:)很高兴你找到了让它工作的方法。
<Resources>
    <Style x:Key="AxisTitleStyle" TargetType="myLib:AxisTitle">
        <Setter Property="RenderTransform">
            <Setter.Value>
                <RotateTransform Angle="90" />
            </Setter.Value>
        </Setter>
    </Style>
</Resources>

<Axis Style="{StaticResource AxisTitleStyle>/>
<Style.Triggers>
    <DataTrigger Binding="{Binding Path=Axis.RotateTitle}" Value="True">
        <Setter Property="RenderTransform">
            <Setter.Value>
                <RotateTransform Angle="90" />
            </Setter.Value>
        </Setter>
    </DataTrigger>

    <DataTrigger Binding="{Binding Path=Axis.RotateTitle}" Value="False">
    <!-- Do nothing -->
    </DataTrigger>
</Style.Triggers>