[英]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_Checked
和OtherRadioButton_Checked
的方法让它按照我想要的方式运行,并根据 RadioButton 设置InputRowsToolTip.Visibility = Visibility.Visible
或Visibility.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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.