public CurvyTabControl() { tabVisual = new CurvyTabVisual(this); childVisuals = new VisualCollection(this); childVisuals.Add(tabVisual.Render()); this.LayoutUpdated += new EventHandler(CurvyTabLayoutUpdated); this.MouseMove += new MouseEventHandler(CurvyTabMouseMove); this.MouseLeave += new MouseEventHandler(CurvyTabMouseLeave); this.MouseLeftButtonDown += new MouseButtonEventHandler(CurvyTabMouseLeftButtonDown); this.MouseLeftButtonUp += new MouseButtonEventHandler(CurvyTabMouseLeftButtonUp); this.MouseRightButtonDown += new MouseButtonEventHandler(CurvyTabMouseRightButtonDown); this.MouseRightButtonUp += new MouseButtonEventHandler(CurvyTabMouseRightButtonUp); this.MouseDown += new MouseButtonEventHandler(CurvyTabMouseDown); }
void CurvyTabMouseLeftButtonUp(object sender, MouseButtonEventArgs e) { e.Handled = true; bool overCloseButton = false; Point mousePosition = e.GetPosition(sender as IInputElement); if (tabVisual.ProcessMouseLeftButtonUp(mousePosition.X, ref overCloseButton)) { if (false != overCloseButton) { CloseTabInternal(); tabVisual.Render(); } } }