virtual public void Initialize(IMui parent, Widget client) { Parent = parent; Container = client; if (IsInitialized) { System.Diagnostics.Debug.Print("{0}=>{1}", Container == null ? Parent.ToString() : Container.ToString(), this); } this.ParentClick += WidgetButton_ParentClick; this.ParentMouseDown += WidgetButton_ParentMouseDown; this.ParentMouseUp += WidgetButton_ParentMouseUp; this.ParentMouseMove += WidgetButton_ParentMouseMove; Design(); foreach (var widget in WidgetsIndexed) { Widgets[widget].Initialize(parent, this); } foreach (var sindex in ServicesIndexed) { Services[sindex].Initialize(this); Services[sindex].Register(); } IsInitialized = true; }