【问题标题】:Tooltip for disabled TabItem禁用 TabItem 的工具提示
【发布时间】:2012-09-13 17:17:46
【问题描述】:

我想要在 TabControl 中为禁用的 TabItems 提供工具提示。在 Silverlight 中将工具提示放在禁用控件上的标准方法是将控件包装在具有工具提示的虚拟元素中,但我无法像那样访问 TabItem。 TabItems 的宿主控件是一个 TabPanel,它似乎没有公开任何有用的属性。

有什么想法吗?

【问题讨论】:

    标签: silverlight xaml


    【解决方案1】:

    在禁用的菜单项上放置 Toolip 时遇到了同样的问题,我通过将菜单项的 VisualState 更改为 Disabled 然后禁用 MouseButton 事件来解决它。

    VisualStateManager.GoToState(tabitem, "Disabled", true);
    

    但是你必须小心其他事件,因为 VisualState 会根据不同的事件而改变。这不是一个完美的解决方案,但它适用于某些场景。

    希望对你有帮助

    【讨论】:

    • 嗯,很有趣。正如你所说,这可能有点危险。
    【解决方案2】:

    我目前针对自己的问题的解决方法:

    我有一个 TabControl Behavior,它可以找到“TabPanelTop”模板部分(或左侧、右侧或底部,具体取决于 TabStripPlacement)以及“TemplateTop”。我在 TemplateTop(它是一个网格)中添加了一个 Canvas,并用透明矩形填充它,其位置(使用 TransformToVisual)和大小被计算(和更新)为与 TabItems 相同,它们是 TabPanelTop 的子项。

    Rectangles的可见性绑定到TabItem IsEnabled的逆,ToolTipService.ToolTip绑定到TabItem上的ToolTipService.ToolTip。

    这有点吓人,但它有效且易于使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-25
      • 1970-01-01
      • 2017-04-28
      相关资源
      最近更新 更多