繁体   English   中英

WPF 工具提示可见性绑定到单选按钮已选中

[英]WPF ToolTip Visibility Binding to RadioButton Checked

我想根据选中不同组中的哪个单选按钮来显示/隐藏单选按钮上的工具提示。 我尝试了 BooleanToVisibilityConverter,它适用于其他控件,但不适用于工具提示。

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

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

<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>

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

  • 将工具提示文本包装在<TextBlock>中并在其中包含 Visibility 参数 - 没有效果。

  • 使用<TextBlock>而不是<ToolTip>并在其中包含 Visibility 参数 - 没有效果。

  • ToolTipService.ShowOnDisabled="False"ToolTipService.IsEnabled="False"添加到 ToolTip 和 RadioButton - 根本不显示工具提示。

我可以使用cs文件中InputTextRadioButton_CheckedOtherRadioButton_Checked的方法让它按照我想要的方式运行,并根据 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>

单选按钮工具提示区域内的控件并不会直接找到外面的控件。 这就是为什么我认为最好通过强大的依赖属性DataContext来处理它。

您不能使用下面的表格。

  • ElementName
  • RelativeSource AncestorType
  • Relative Source TemplateParent

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM