2011-04-19 28 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

相關問題