'Declaration Public ReadOnly Property InstanceProps As InstanceProps
public InstanceProps InstanceProps {get;}
UltraWinToolbars represents a tool in two ways, as a root tool and an instance tool. Root tools are the tools that appear in the run-time customizer; their purpose is to create the tools that will appear on a toolbar or menu. Instance tools are the tools that the user actually interacts with; they appear on toolbars and/or menus. Each instance tool is related to exactly one root tool. Each root tool may have multiple instance tools derived from it. For example, a "FileSave" root tool may have two instance tools in an application - one displaying only text and appearing on the File menu, and one displaying only an image and appearing on the Standard toolbar.
Although functionally treated as distinct objects, root and instance tools share a close relationship. Changes made to a root tool will affect all instance tools derived from that root. Changes to an instance tool may affect only the one instance, or they may affect the root tool and by extension other instances of that root.
Because root and instance tools have some features that are shared and some that are unique, UltraWinToolbars splits some of each tool's properties between two objects. Properties that apply to the root tool and all instances of that tool are found on the SharedProps object, which is accessed via the tool's SharedProps property. As the name suggests, the properties of the SharedProps object are shared across all instances of the tool. A change to one of these properties will affect the root tool and all other instances of the tool.
Properties that affect only a single instance of the tool are found on the InstanceProps object, which is accessed via the tool's InstanceProps property. Although root tools have an InstanceProps property, this property returns Null, as there are no instance properties associated with a root tool.
These properties exist in an inheritance hierarchy, with common properties supporting a "use default" setting to indicate that the value of that property should be inherited. When resolving the property setting for a particular tool instance, the InstanceProps value for a property is applied first. If the InstanceProps property is set to its "use default" value (i.e. there is not InstanceProps value for the property) then the SharedProps setting for the property is used. The default values of the SharedProps object always provide a value that can be used by the control. If for some reason the SharedProps value is set to "use default", the intrinsic value of the root tool is used.
For a complete discussion of the difference between root and instance tools, see the following section of the help: Developer’s Guide > The Toolset > Controls and Components > WinToolbarsManager > Understanding WinToolbarsManager.
Imports System.Diagnostics Imports Infragistics.Win Imports Infragistics.Win.UltraWinToolbars Private Sub UltraToolbarsManager1_ToolClick(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinToolbars.ToolClickEventArgs) Handles UltraToolbarsManager1.ToolClick Debug.WriteLine("The Tool with key '" + e.Tool.Key + "' has been clicked. It is of type: '" + e.Tool.GetType().ToString() + "'") ' Display property information for the tool that was clicked. Debug.IndentLevel += 1 ' Display all the properties of the tool's InstanceProps object. Debug.WriteLine("InstanceProps properties ------------------------------------------") If Not e.Tool.InstanceProps Is Nothing Then Debug.WriteLine("Caption: '" + e.Tool.InstanceProps.Caption) Debug.WriteLine("DisplayStyle: '" + e.Tool.InstanceProps.DisplayStyle.ToString()) Debug.WriteLine("MaxWidth: '" + e.Tool.InstanceProps.MaxWidth.ToString()) Debug.WriteLine("MinWidth: '" + e.Tool.InstanceProps.MinWidth.ToString()) Debug.WriteLine("Width: '" + e.Tool.InstanceProps.Width.ToString()) ' InstanceProps.IsFirstInGroup If e.Tool.InstanceProps.IsFirstInGroup Then Debug.WriteLine("Tool has been marked as first in group (i.e., preceded by a tool separator). This setting may have been customized by the end user. Use the tool's IsFirstInGroupResolved property to get its effective setting.") Else Debug.WriteLine("Tool has NOT been marked as first in group (i.e., preceded by a tool separator). This setting may have been customized by the end user. Use the tool's IsFirstInGroupResolved property to get its effective setting.") End If ' InstanceProps.RecentlyUsed If e.Tool.InstanceProps.RecentlyUsed = True Then Debug.WriteLine("Tool will appear when menus are first displayed even if AlwaysShowFullMenus is set to false. This setting may have been customized by the end user. Use the tool's RecentlyUsedResolved property to get its effective setting.") Else Debug.WriteLine("Tool will NOT appear when menus are first displayed if AlwaysShowFullMenus is set to false. This setting may have been customized by the end user. Use the tool's RecentlyUsedResolved property to get its effective setting.") End If ' InstanceProps.Spring If e.Tool.InstanceProps.Spring = DefaultableBoolean.True Then If e.Tool.OwnerIsToolbar And e.Tool.OwningToolbar.SettingsResolved.FillEntireRowResolved = True Then Debug.WriteLine("Tool will adjust its width if there is unused space on its parent toolbar.") Else Debug.WriteLine("Tool will NOT adjust its width since it is not on a toolbar that has its FillEntireRow property set to true.") End If Else Debug.WriteLine("Tool will NOT automatically adjust its width when placed on toolbars with unused space available.") End If ' InstanceProps.Visible If e.Tool.InstanceProps.Visible = DefaultableBoolean.True Then Debug.WriteLine("Tool has been marked as Visible. Use the tool's VisibleResolved property to get its effective setting since the tool may not be visible for other reaosns.") Else Debug.WriteLine("Tool has NOT been marked as Visible.") End If End If Debug.IndentLevel -= 1 End Sub
using System.Diagnostics; using Infragistics.Win; using Infragistics.Win.UltraWinToolbars; private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e) { Debug.WriteLine("The Tool with key '" + e.Tool.Key + "' has been clicked. It is of type: '" + e.Tool.GetType().ToString() + "'"); // Display property information for the tool that was clicked. Debug.IndentLevel++; // Display all the properties of the tool's InstanceProps object. Debug.WriteLine("InstanceProps properties ------------------------------------------"); if (e.Tool.InstanceProps != null) { Debug.WriteLine("Caption: '" + e.Tool.InstanceProps.Caption); Debug.WriteLine("DisplayStyle: '" + e.Tool.InstanceProps.DisplayStyle.ToString()); Debug.WriteLine("MaxWidth: '" + e.Tool.InstanceProps.MaxWidth.ToString()); Debug.WriteLine("MinWidth: '" + e.Tool.InstanceProps.MinWidth.ToString()); Debug.WriteLine("Width: '" + e.Tool.InstanceProps.Width.ToString()); // InstanceProps.IsFirstInGroup if (e.Tool.InstanceProps.IsFirstInGroup) Debug.WriteLine("Tool has been marked as first in group (i.e., preceded by a tool separator). This setting may have been customized by the end user. Use the tool's IsFirstInGroupResolved property to get its effective setting."); else Debug.WriteLine("Tool has NOT been marked as first in group (i.e., preceded by a tool separator). This setting may have been customized by the end user. Use the tool's IsFirstInGroupResolved property to get its effective setting."); // InstanceProps.RecentlyUsed if (e.Tool.InstanceProps.RecentlyUsed == true) Debug.WriteLine("Tool will appear when menus are first displayed even if AlwaysShowFullMenus is set to false. This setting may have been customized by the end user. Use the tool's RecentlyUsedResolved property to get its effective setting."); else Debug.WriteLine("Tool will NOT appear when menus are first displayed if AlwaysShowFullMenus is set to false. This setting may have been customized by the end user. Use the tool's RecentlyUsedResolved property to get its effective setting."); // InstanceProps.Spring if (e.Tool.InstanceProps.Spring == DefaultableBoolean.True) { if (e.Tool.OwnerIsToolbar && e.Tool.OwningToolbar.SettingsResolved.FillEntireRowResolved == true) Debug.WriteLine("Tool will adjust its width if there is unused space on its parent toolbar."); else Debug.WriteLine("Tool will NOT adjust its width since it is not on a toolbar that has its FillEntireRow property set to true."); } else Debug.WriteLine("Tool will NOT automatically adjust its width when placed on toolbars with unused space available."); // InstanceProps.Visible if (e.Tool.InstanceProps.Visible == DefaultableBoolean.True) Debug.WriteLine("Tool has been marked as Visible. Use the tool's VisibleResolved property to get its effective setting since the tool may not be visible for other reaosns."); else Debug.WriteLine("Tool has NOT been marked as Visible."); } Debug.IndentLevel--; }
Target Platforms: Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Server 2012, Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2