WPF Style.Trigger

时间:2009-10-06 01:53:57

标签: wpf resources triggers styles expander

有人可以告诉我为什么这个触发器不起作用:

<!--Style-->
<Style x:Key="Test" TargetType="{x:Type Expander}">
            <Style.Triggers>
                <Trigger Property="IsEnabled" Value="false">
                    <Setter Property="IsExpanded" Value="false"></Setter>
                </Trigger>
            </Style.Triggers>
        </Style>

<!-- Syle applyed in expander -->
<Expander Header="Expander" Margin="40,89,118,0" Name="expander1" Height="23" VerticalAlignment="Top" >
            <Grid>
                <Ellipse Height="100" Margin="86,0,-8,-58" Name="ellipse1" Stroke="Black" VerticalAlignment="Bottom" />        
            </Grid>
        </Expander>

<!-- Code Behind -->
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            this.expander1.IsEnabled = false;
        }

我尝试其他方式,但没有成功.. 有另一种方法在禁用扩展器时折叠内容。

2 个答案:

答案 0 :(得分:1)

您需要将样式应用于Expander,如:

<Expander Header="Expander" Name="expander1" Style="{StaticResource Test}" >
...
</Expander>

如果您不想显式应用该样式,则不要声明x:Key="Test",并且所有Expanders都与该资源在同一范围内(即,如果您声明{{1},则该特定页面中的所有Expanders在x:Key="Test")中将继承该样式。

答案 1 :(得分:0)

谢谢,但我忘记了你提到的代码块。我在Style标签中添加了一个引用,问题仍然存在。