이것은 내가 이전에했던 것과는 다른 접근법입니다. 내 콤보 소유자 그린 콤보 상자에서 줄이있는 C# 콤보 상자
3 개 라인 (고체, 대시, dashdot)를 그릴
는 여기this.DrawMode = DrawMode.OwnerDrawVariable;
this.DropDownStyle = ComboBoxStyle.DropDownList;
protected override void OnDrawItem(DrawItemEventArgs e)
{
e.DrawBackground();
int startX = e.Bounds.Left + 5;
int startY = (e.Bounds.Y);
Point p1=new Point(startX,startY);
int endX = e.Bounds.Right - 5;
int endY = (e.Bounds.Y);
ComboBoxItem item = (ComboBoxItem)this.Items[e.Index];
Point p2=new Point(endX,endY);
base.OnDrawItem(e);
Pen SolidmyPen = new Pen(item.foreColor, 1);
Pen DashedPen = new Pen(item.foreColor, 1);
DashedPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
Pen DashDot = new Pen(item.foreColor, 1);
DashDot.DashStyle = System.Drawing.Drawing2D.DashStyle.DashDot;
// Pen DashedPen = new Pen(item.foreColor, (Int32)this.Items[e.Index]);
Bitmap myBitmap = new Bitmap(item.Picture);
Graphics graphicsObj;
graphicsObj = Graphics.FromImage(myBitmap);
switch (e.Index)
{
case 0:
graphicsObj.DrawLine(SolidmyPen, p1, p2);
break;
case 1:
graphicsObj.DrawLine(DashedPen, p1, p2);
break;
case 2:
graphicsObj.DrawLine(DashDot, p1, p2);
break;
}
내가 할 노력하고있어 무엇 드롭 다운 이전 colpr 선택기에서 선택한 색상으로 그려 질 . 콤보 상자에 3 선 (솔리드, 대시, 대시 돗)을 그립니다.
나는
winforms로 태그 된 WPF를 사용하고 있습니까? ComboboxItem은 winforms에 존재하지 않습니다? 어쨌든 내가 알고있는 것이 아닙니다. –