WPF ToolTip 可见性绑定到 RadioButton 检查

WPF ToolTip Visibility Binding to RadioButton Checked

我想 show/hide 单选按钮的工具提示基于选中不同组中的哪个单选按钮。我尝试了 BooleanToVisibilityConverter,它适用于其他控件,但不适用于工具提示。

<Page.Resources>
    <BooleanToVisibilityConverter x:Key="b2v" />
</Page.Resources>

确定工具提示是否可见的单选按钮。 ToolTip 选中“InputText”时应该可见。

<RadioButton x:Name="InputText" Content="InputText" IsChecked="True" />
<RadioButton x:Name="Other" Content="Other" />

带工具提示的单选按钮

<RadioButton x:Name="InputRows" Content="Rows">
    <RadioButton.ToolTip>
        <ToolTip x:Name="InputRowsToolTip"
                 Visibility="{Binding IsChecked,ElementName=InputText, Converter={StaticResource b2v}}">
            ToolTip text here
        </ToolTip>
    </RadioButton.ToolTip>
</RadioButton>

我尝试过但不起作用的其他方法:

我可以使用 InputTextRadioButton_CheckedOtherRadioButton_Checked 的 cs 文件中的方法使其按照我想要的方式运行,并根据 RadioButton 设置 InputRowsToolTip.Visibility = Visibility.VisibleVisibility.Collapsed ,但似乎我应该能够使用 BooleanToVisibilityConverter 执行此操作,因为它适用于其他控件。

我刚刚在 InputRows

中添加了 DataContext
DataContext="{Binding ElementName=InputText"

还有你的代码。

<RadioButton x:Name="InputText" Content="InputText" IsChecked="True" />
<RadioButton x:Name="Other" Content="Other" />

<RadioButton x:Name="InputRows" Content="Rows" DataContext="{Binding ElementName=InputText}">
    <RadioButton.ToolTip>
        <ToolTip x:Name="InputRowsToolTip"
                 Visibility="{Binding RelativeSource={RelativeSource Self}, Path=DataContext.IsChecked, Converter={StaticResource b2v}}">
            ToolTip text here
        </ToolTip>
    </RadioButton.ToolTip>
</RadioButton>

单选按钮tooltip区域内的控件没有直接找到外面的控件。这就是为什么我认为通过 DataContext 这种强大的 Dependency 来处理它更好 属性.

您不能使用下面的表格。

  • ElementName
  • RelativeSource AncestorType
  • Relative Source TemplateParent

此示例源代码 https://github.com/ncoresoftsource/Whosebugsample/tree/main/src/answers/radiobutton-tooltip-other-binding