0

我正在编写一个应用程序,其中我ToggleButton在 UI 上有一个和其他几个控件。ToggleButton当状态为is时,我想实现以下两件事IsChecked

1) 在下面的示例中隐藏一些控件,例如 button1、button2 等
2) 将 ToggleButton 的“内容”更改为“显示”

我可以达到第 2 点,但不知道如何访问其他控件并将它们的属性设置在Trigger. 我的 xaml 代码如下所示:

<Grid>
  <Grid.RowDefinitions>
    <RowDefinition Height="108*" />
    <RowDefinition Height="107*" />
    <RowDefinition Height="96*" />
  </Grid.RowDefinitions>
  <Grid.ColumnDefinitions>
    <ColumnDefinition Width="209*" />
    <ColumnDefinition Width="161*" />
    <ColumnDefinition Width="133*" />
  </Grid.ColumnDefinitions>
  <ToggleButton x:Name="tg"
                Height="20"
                Width="80"
                Grid.Column="1"
                Margin="2,38,79,49"
                Grid.Row="1">
    <ToggleButton.Style>
      <Style TargetType="{x:Type ToggleButton}">
        <Setter Property="Content"
                Value="Hide" />
        <Style.Triggers>
          <Trigger Property="IsChecked"
                   Value="true">
            <Setter Property="{Binding ElementName=Button1,Path=Content}"
                    Value="Show" />
          </Trigger>
        </Style.Triggers>
      </Style>
    </ToggleButton.Style>
  </ToggleButton>
  <Button Content="Button1"
          Height="23"
          HorizontalAlignment="Left"
          Margin="45,28,0,0"
          Name="button1"
          VerticalAlignment="Top"
          Width="75" />
  <Button Content="Button2"
          Height="23"
          HorizontalAlignment="Left"
          Margin="38,28,0,0"
          Name="button2"
          VerticalAlignment="Top"
          Width="75"
          Grid.Column="1" />
</Grid>

问题:当用户单击切换按钮“tg”时,我想隐藏“button1”、“button2”,当切换按钮的状态变为取消选中时,再次显示 button1。

如何使用ToggleButton'IsChecked属性切换 button1 的可见性?

4

1 回答 1

1

在您的资源中声明BoolToVisibilityConverter如下:

<Window.Resources>
    <BooleanToVisibilityConverter x:Key="BoolToVis" />
</Window.Resources>

然后将 button1 的可见性设置为绑定:

    <Button Content="Button1" Height="23" HorizontalAlignment="Left" Margin="45,28,0,0" Name="button1" VerticalAlignment="Top" Width="75" 
            Visibility="{Binding ElementName=tg, Path=IsChecked, Converter={StaticResource BoolToVis}}"/>
于 2013-05-19T12:46:55.330 回答