由于某种原因,以下代码无效
<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;不被承认或不被认可 访问。
有人可以协助我搞砸了吗? 我的大脑已转向瑞士奶酪,我无法看到它
答案 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及其内容。