2011-04-19 31 views
0

在实现功能区控件的UltraToolbarsManager上有一个ComboBoxTool。不管我怎么设置的ToolTipText它始终显示工具提示:如何防止在功能区控件(winforms)上的Infragistics ComboBoxTool中弹出不需要的工具提示

enter image description here

[例如鼠标在gdg组合显示此]

我已尝试将所有其他工具提示相关属性(ToolTipTextFormatted,ToolTipTitle)设置为null,但这没有帮助。

  • 如果指定了一个非零长度的工具提示文本,则这表明预期
  • 色带子控件都加入编程
  • 色带上的其他控件没有这个问题

我也尝试在虚拟项目上设置一个非常简单的功能区,并且不会显示这种奇怪的行为。所以这是另一回事。

回答

1

的Infragistics提供一个答案:

  1. 自己CreationFilter添加到ToolbarsManager

    ultraToolbarsManager1.CreationFilter =新MyCreation();

  2. 赶上工具创建和使用您自己的实现

    public class MyCreation : IUIElementCreationFilter { 
    
        private readonly int max; 
    
        public MyCreation() 
        { 
        } 
    
        public MyCreation(int toolTipMaxWidth) 
        { 
         max = toolTipMaxWidth; 
        } 
    
        public void AfterCreateChildElements(UIElement parent) 
        { 
         parent.ToolTipItem = new MyToolTipItem(max); 
        } 
    
        public bool BeforeCreateChildElements(UIElement parent) 
        { 
         return false; 
        } 
    } 
    
    
    public class MyToolTipItem : IToolTipItem { 
        private readonly int max; 
    
        public MyToolTipItem(int maxWidth) 
        { 
         max = maxWidth; 
        } 
    
        public MyToolTipItem() 
        { 
        } 
    
        public ToolTipInfo GetToolTipInfo(Point mousePosition, UIElement element, UIElement previousToolTipElement, 
                ToolTipInfo toolTipInfoDefault) 
        { 
         // set tooltip info for ribbon ApplicationMenuButton 
         var app = element as ApplicationMenuButtonUIElement; 
         if (app != null) 
         { 
          var appmenu = ((UltraToolbarsDockAreaUIElement) ((app.Parent).Parent)).ToolbarsManager.Ribbon.ApplicationMenu; 
          if (max > 0) 
           toolTipInfoDefault.MaxWidth = max; 
          toolTipInfoDefault.Title = appmenu.ToolTipTitle; 
    
          string tooltiptex = appmenu.ToolTipText; 
          if (!string.IsNullOrEmpty(appmenu.ToolTipTextFormatted)) 
          { 
           toolTipInfoDefault.ToolTipTextStyle = ToolTipTextStyle.Formatted; 
           tooltiptex = appmenu.ToolTipTextFormatted; 
          } 
          toolTipInfoDefault.ToolTipText = tooltiptex; 
         } 
    
         // set tooltip info for tools 
         if (element.ToolTipItem != null && UIElement.IsContextOfType(element.GetContext(), typeof (ToolBase))) 
         { 
          var tool = (ToolBase) element.GetContext(typeof (ToolBase)); 
          var loc = tool.ToolbarsManager.DockWithinContainer.PointToScreen(new Point(0, 0)); 
         loc.Offset(tool.UIElement.Rect.Location.X, 185); 
    
          if (max > 0) 
           toolTipInfoDefault.MaxWidth = max; 
         toolTipInfoDefault.Title = tool.SharedProps.ToolTipTitle; 
         string tooltiptex = tool.SharedProps.ToolTipText; 
          if (!string.IsNullOrEmpty(tool.SharedProps.ToolTipTextFormatted)) 
          { 
           toolTipInfoDefault.ToolTipTextStyle = ToolTipTextStyle.Formatted; 
           tooltiptex = tool.SharedProps.ToolTipTextFormatted; 
          } 
          toolTipInfoDefault.ToolTipText = tooltiptex; 
          toolTipInfoDefault.DisplayStyle = Infragistics.Win.ToolTipDisplayStyle.Office2007; 
          toolTipInfoDefault.Location = loc; 
         } 
         return toolTipInfoDefault; 
        } 
    

需要进行一些调整,以获得提示在正确的地方和接机TooltipTextResolved提示文本的更换提示。

1

它看起来可能是一个错误。您应该将其提交给Infragistics。

如果您不希望为整个功能区组显示任何工具提示,则可以将RibbonGroup.Settings.ShowToolTips值设置为False。事实上,如果你想关闭工具提示在更广的范围,你可以设置以下属性之一为False,而不是:

  • RibbonTab.GroupSettings.ShowToolTips
  • ContextualTabGroup.GroupSettings.ShowToolTips
  • Ribbon.GroupSettings.ShowToolTips
  • UltraToolbarsManager.ShowToolTips

每个属性都将关闭工具提示相关容器中的所有工具的实例。

但是,如果您只想转换此工具的工具提示,则可以使用从ComboBoxTool派生的工具。在你的派生工具中,你可以覆盖ShouldDisplayToolTip,你可以返回False。

+0

谢谢我会联系Infragistics并回报 – 2011-05-09 12:14:44

相关问题