绑定到WPF切换按钮';美国处于被检查状态

绑定到WPF切换按钮';美国处于被检查状态,wpf,xaml,binding,togglebutton,Wpf,Xaml,Binding,Togglebutton,我想使用WPFToggleButton来展开和折叠应用程序中的一些控件。如何使用XAML来实现这一点 我想我可以以某种方式将某些控件的可见性属性绑定到切换按钮的已选中状态,但我不知道如何执行此操作 也许我需要给我的ToggleButton一个名称,然后使用ElementName绑定?然后我需要一个ValueConverter在布尔值和可见性之间进行转换,对吗?为此,我如何制作一个通用的值转换器?您不只是使用?它仍然基于切换按钮。使用BooleanToVisibilityConverter: &l

我想使用WPF
ToggleButton
来展开和折叠应用程序中的一些控件。如何使用XAML来实现这一点

我想我可以以某种方式将某些控件的
可见性
属性绑定到
切换按钮
已选中
状态,但我不知道如何执行此操作


也许我需要给我的
ToggleButton
一个
名称
,然后使用
ElementName
绑定?然后我需要一个
ValueConverter
在布尔值和可见性之间进行转换,对吗?为此,我如何制作一个通用的
值转换器?

您不只是使用?它仍然基于切换按钮。

使用BooleanToVisibilityConverter:

<BooleanToVisibilityConverter x:Key="bvc" />
<TextBlock Visibility="{Binding IsChecked, ElementName=toggle, Converter={StaticResource bvc}}" />

您需要通过转换器绑定
可见性

<Window
  x:Class="WpfApplication1.Window1"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Window.Resources>
    <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
  </Window.Resources>
  <StackPanel>
    <ToggleButton x:Name="toggleButton" Content="Toggle"/>
    <TextBlock
      Text="Some text"
      Visibility="{Binding IsChecked, ElementName=toggleButton, Converter={StaticResource BooleanToVisibilityConverter}}"/>
  </StackPanel>
</Window>
现在,您可以指定一个转换器,将
true
映射到
Collapsed
,将
false
映射到
Visible

<BooleanToVisibilityConverter
  x:Key="InverseBooleanToVisibilityConverter" InvertVisibility="True"/>


我所做的不仅仅是扩展和折叠——我正在重新安排内容。例如,我想设置StackPanel的方向和TextBlock的TextWrapping和FontSize属性。我没有指定这一点,因为我想让问题保持简单。足够公平:-)您应该能够使用{binding elementname=mytoggle,propertyname=checked}绑定,甚至可以在切换上使用触发器来设置目标样式。“我如何为此制作一个通用的ValueConverter?”您不需要:它已经在框架中了。寻找BooleantVisibilityConverter。我相信也可以以类似的方式使用触发器,想想你能想到的第一个简单直观的框架。可能不是WPF。