protected override void OnWindowlessClick(WindowlessControlHost sender, WindowlessMouseEventArgs e) { base.OnWindowlessClick(sender, e); if (!e.Handled) { Checked = !Checked; } }
void OnCheckedChanged(object sender, DependencyPropertyEventArgs e) { WindowlessControlHost.WindowlessInvalidate(this); if (CheckedChanged != null) { CheckedChanged(this); } }
protected override void OnWindowlessLostFocus(WindowlessControlHost sender, EventArgs e) { base.OnWindowlessLostFocus(sender, e); if (!HasEditFocus && IsEditing) { IsEditing = false; } }
//protected override void OnWindowlessKeyPress(Control sender, KeyPressEventArgs e) //{ // base.OnWindowlessKeyPress(sender, e); // if (!e.Handled && e.KeyChar == '\r') // { // IsEditing = !IsEditing; // } //} protected override void OnWindowlessClick(WindowlessControlHost sender, WindowlessMouseEventArgs e) { if (!e.Handled) { e.Handled = true; IsEditing = !IsEditing; } base.OnWindowlessClick(sender, e); }
public void PositionControl() { Control topLevelControl = WindowlessControlHost.GetHost(myDropdownSource).TopLevelControl; if (Parent != topLevelControl) { Parent = topLevelControl; } Point topLeft = WindowlessPointToForm(myDropdownSource, Point.Empty); Point bottomLeft = WindowlessPointToForm(myDropdownSource, new Point(0, myDropdownSource.Height)); int bottomSpaceAvailable = topLevelControl.Height - bottomLeft.Y; int maxHeight = Math.Max(topLeft.Y, bottomSpaceAvailable); //int maxWidth = TopLevelControl.Width - topLeft.X; int maxWidth = myDropdownSource.Width; Width = maxWidth; Height = maxHeight; Remeasure(); Size newClientSize = ClientSize; if (Control.Height < ClientSize.Height) { newClientSize.Height = Control.Height; } if (Control.Width < ClientSize.Width) { newClientSize.Width = Control.Width; } if (newClientSize != ClientSize) { ClientSize = newClientSize; } if (Height < bottomSpaceAvailable || bottomSpaceAvailable >= topLeft.Y) { Location = bottomLeft; } else { Location = topLeft; } BringToFront(); }
public DropdownControl(WindowlessControlHost dropdownSource, IWindowlessControl dropdownContent) { AutoScroll = true; Orientation = Orientation.Vertical; myDropdownSource = dropdownSource; OverlayPanel overlay = new OverlayPanel(); WindowlessRectangle rectangle = new WindowlessRectangle(); rectangle.Color = SystemColors.ControlDarkDark; rectangle.Filled = false; overlay.Controls.Add(rectangle); OverlayPanel inner = new OverlayPanel(); inner.Margin = new Thickness(1, 1, 1, 1); inner.Controls.Add(dropdownContent); overlay.Controls.Add(inner); overlay.FitHeightControl = overlay.FitWidthControl = inner; Control = overlay; }
void myDropdown_WindowlessClick(WindowlessControlHost sender, WindowlessMouseEventArgs e) { Content = myItemsControl.CurrentSelection; IsEditing = false; }