【问题标题】:XAML Code IsChecked Trigger On ToggleButton [duplicate]ToggleButton上的XAML代码IsChecked触发器[重复]
【发布时间】:2014-12-31 20:48:28
【问题描述】:

由于某种原因,下面的代码将不起作用

<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 ​​成员“IsChecked”未被识别或未被识别 可访问。

有人可以帮忙解决我搞砸的事情吗? 我的大脑已经转向瑞士奶酪,我看不到它

【问题讨论】:

  • 你试过Property="OptionPanel.IsChecked"吗?

标签: c# wpf xaml


【解决方案1】:

您不需要使用ToggleButton.Triggers,也不能因为ControlTemplate 中没有OptionsPanel。此外,您想使用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 及其内容,就像您想要的那样。

【讨论】:

  • 完美,谢谢。我不知道为什么我试图以最复杂的方式来思考这个问题。昨天写了很多代码
猜你喜欢
  • 1970-01-01
  • 2016-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多