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