wpf - 不显示组合框工具提示
问题描述
我正在尝试以下代码:
<ComboBox x:Name="comboBox">
<ComboBox.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding}" ToolTip="This will never be shown, why?" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
然后我在后面的代码中分配一些ItemSource
,选择项目并尝试将鼠标悬停在组合框上。结果 - 没有工具提示。
如果我做同样的事情ListBox
- 为每个项目显示工具提示。如果我打开ComboBox
弹出窗口 - 会为每个项目显示工具提示。
如果我窥探它:
CheckBox
然后在视觉树中没有。但是内容演示者会显示它。到底是怎么回事?
当然,我还可以绑定ComboBox.Tooltip
到例如它的SelectedValue
or SelectedIndex.ToolTip
,但它不会总是起作用,并且取决于内容和配置:它是orComboBox
的集合,它是否使用等等。ComboBoxItems
ItemsSource
ValuePath
我想了解为什么没有CheckBox
. 我希望显示来自数据模板的工具提示。
这可能是一个错误Snoop
或其他问题,但在打开和关闭ComboBox
弹出窗口并点击其中的刷新按钮后Snoop
,最终显示CheckBox
:
但是我的问题仍然存在:为什么没有显示工具提示?我可以看到它在那里,但是鼠标悬停ComboBox
不显示任何内容。
解决方案
为什么不显示工具提示?
由于元素只能在元素树中出现一次,因此创建了使用 aComboBox
的可视副本,然后在选择框中显示克隆:https ://referencesource.microsoft.com/#PresentationFramework/src/Framework/System/ Windows/Controls/ComboBox.cs,896CheckBox
VisualBrush
而Rectangle
那个主机VisualBrush
没有Tooltip
.
推荐阅读
- c++ - 将 x86 更改为 x64 会影响我的 LNK1168 错误
- c++ - 我正在开发一个 C++ 应用程序来将二进制数转换为十进制数
- wordpress - htaccess 中的错误配置从子文件夹重定向到主域
- bundle - 如何使用 Swift 5 加载包含 RTF 文件中数据的 TextView?
- mysql - MySQL:帮助设计用于存储可变数量的相同表单列表的表
- python - 查找列表的累积和
- linux - 找不到“作业”命令列出的进程
- reactjs - 为 graphQL 查询添加包装器 - HOC 或 Render 道具
- acumatica - 确认前如何查看Shipment line?
- python - 如何防止在 django 中多次调用 get_queryset()?