XAML Code IsChecked Trigger On ToggleButton

时间:2014-08-26 14:33:22

标签: c# wpf xaml

由于某种原因,以下代码无效

<ToggleButton Content="Options" x:Name="Options" Height="{Binding ElementName=Connect,Path=ActualHeight}">
    <ToggleButton.Triggers>
        <Trigger Property="IsChecked" Value="True">
            <Setter TargetName="OptionsPanel" Property="Visibility" Value="Collapsed"/>
        </Trigger>
    </ToggleButton.Triggers>
</ToggleButton>
<StackPanel x:Name="OptionPanel">

</StackPanel> 

我得到的错误是

  

错误1会员&#34; IsChecked&#34;不被承认或不被认可   访问。

有人可以协助我搞砸了吗? 我的大脑已转向瑞士奶酪,我无法看到它

1 个答案:

答案 0 :(得分:4)

您不需要使用ToggleButton.Triggers,也不能因为OptionsPanel中没有ControlTemplate。此外,您还想使用Property="ToggleButton.IsChecked",但它仍然不适合您。由于您使用的是x:Name,因此您可以执行以下操作:

<Page x:Class="WPF.MainWindow"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      Title="MainWindow"
      Height="350"
      Width="525">
    <Page.Resources>
        <BooleanToVisibilityConverter x:Key="B2VisibilityConverter" />
    </Page.Resources>
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition />
            <RowDefinition />
        </Grid.RowDefinitions>
        <ToggleButton Content="Options"
                      x:Name="Options" />
        <StackPanel Grid.Row="1"
                    Visibility="{Binding ElementName=Options, Path=IsChecked, Converter={StaticResource B2VisibilityConverter}}">
            <Button>Button 1</Button>
            <Button>Button 2</Button>
            <Button>Button 3</Button>
            <Button>Button 4</Button>
        </StackPanel>

    </Grid>
</Page>

单击ToggleButton将按照您希望的方式显示/折叠StackPanel及其内容。