public DrawFocusRectangle ( Rectangle bounds ) : void | ||
bounds | Rectangle | |
return | void |
protected override void OnDrawSubItem(DrawListViewSubItemEventArgs e) { base.OnDrawSubItem(e); if (e.ItemState == 0) { return; } if ((e.ItemState & ListViewItemStates.Selected) == ListViewItemStates.Selected) e.SubItem.BackColor = System.Drawing.Color.LightSkyBlue; else { ConfigData data = e.Item.Tag as ConfigData; if (data != null && (data.HasTaskitem || data.IsAutRun)) { e.SubItem.BackColor = System.Drawing.Color.Pink; } else if (e.ItemIndex % 2 != 0) e.SubItem.BackColor = HVH_Ken_Modules.GlobalVar.Instanse.StyleColor; else e.SubItem.BackColor = this.BackColor; } e.DrawBackground(); using (StringFormat sf = new StringFormat()) { HorizontalAlignment align = Columns[e.ColumnIndex].TextAlign; if (align == HorizontalAlignment.Center) sf.Alignment = StringAlignment.Center; else if (align == HorizontalAlignment.Right) sf.Alignment = StringAlignment.Far; e.Graphics.DrawString(e.SubItem.Text, Font, new SolidBrush(ForeColor), e.Bounds, sf); } e.DrawFocusRectangle(e.Bounds); if ((e.ItemState & ListViewItemStates.Focused) == ListViewItemStates.Focused) { if (this.FullRowSelect == false) { if (e.ColumnIndex == 0) { e.DrawFocusRectangle(e.Bounds); } } else e.DrawFocusRectangle(e.Bounds); } }
private void listView_DrawSubItem(object sender, DrawListViewSubItemEventArgs e) { Brush brush; Color backColor; Color foreColor; if (e.Item.Selected) { if (listView.Focused) { brush = SystemBrushes.Highlight; backColor = SystemColors.Highlight; foreColor = SystemColors.HighlightText; } else { // We use the same colors here as TreeViewMS does for // drawing unfocused selected rows. brush = Brushes.LightGray; backColor = Color.LightGray; foreColor = SystemColors.WindowText; } } else { brush = SystemBrushes.Window; backColor = SystemColors.Window; foreColor = SystemColors.WindowText; } if (e.ColumnIndex == 0) { // Erase the entire background when drawing the first sub-item e.Graphics.FillRectangle(brush, e.Item.Bounds); } if (e.ColumnIndex == colHdrDisplayText.Index) { var findResult = (FindResult) e.Item.Tag; var textRendererHelper = new TextRendererHelper { ForeColor = foreColor, BackColor = backColor, Font = e.Item.Font, HighlightFont = new Font(e.Item.Font, FontStyle.Bold), }; textRendererHelper.DrawHighlightedText(e.Graphics, e.SubItem.Bounds, findResult.FindMatch); } else { e.SubItem.ForeColor = foreColor; e.DrawText(); } if (e.ColumnIndex == 0) { e.DrawFocusRectangle(e.Bounds); } }
private void _tailListView_DrawSubItem(object sender, DrawListViewSubItemEventArgs e) { if (e.ColumnIndex != 1) return; Color? textColor = null;; Color? backColor = null; // Bookmark coloring has higher priority, than keyword highlight if (MatchesBookmark(e.ItemIndex)) { backColor = _bookmarkBackColor; textColor = _bookmarkTextColor; } else { TailKeywordConfig keyword = MatchesKeyword(e.Item.Text, false, true); if (keyword != null) { if (keyword.FormBackColor.HasValue && keyword.FormTextColor.HasValue) { backColor = keyword.FormBackColor.Value; textColor = keyword.FormTextColor.Value; } } } //toggle colors if the item is highlighted if (e.Item.Selected) { if (backColor.HasValue || textColor.HasValue) { e.SubItem.BackColor = SystemColors.Highlight; e.SubItem.ForeColor = Color.FromArgb(SystemColors.Highlight.A, (SystemColors.Highlight.R + 128) % 256, (SystemColors.Highlight.G + 128) % 256, (SystemColors.Highlight.B + 128) % 256); } else { e.SubItem.BackColor = SystemColors.Highlight; e.SubItem.ForeColor = SystemColors.HighlightText; } } else { if (backColor.HasValue) e.SubItem.BackColor = backColor.Value; else e.SubItem.BackColor = e.Item.ListView.BackColor; if (textColor.HasValue) e.SubItem.ForeColor = textColor.Value; else e.SubItem.ForeColor = e.Item.ListView.ForeColor; } // Draw the standard header background. e.DrawBackground(); e.DrawFocusRectangle(e.Bounds); TextFormatFlags flags = TextFormatFlags.Left | TextFormatFlags.ExpandTabs | TextFormatFlags.SingleLine | TextFormatFlags.NoPrefix; if (e.Item.Text.Length > 1000) TextRenderer.DrawText(e.Graphics, e.Item.Text.Substring(0, 1000), e.Item.ListView.Font, e.Bounds, e.SubItem.ForeColor, flags); else TextRenderer.DrawText(e.Graphics, e.Item.Text, e.Item.ListView.Font, e.Bounds, e.SubItem.ForeColor, flags); }
private void ActionListView_DrawSubItem(object sender, DrawListViewSubItemEventArgs e) { e.DrawDefault = true; //采用系统默认方式绘制子项 e.DrawFocusRectangle(e.Bounds); }
void lstFunctions_DrawSubItem(object sender, DrawListViewSubItemEventArgs e) { if (_argsBrush == null) _argsBrush = new SolidBrush(Util.MixColor(SystemColors.Window, SystemColors.WindowText, .5f)); if (_argsBrushHighlight == null) _argsBrushHighlight = new SolidBrush(Util.MixColor(SystemColors.Highlight, SystemColors.HighlightText, .5f)); if (e.ColumnIndex != 0 || e.Item == null || e.Item.Tag == null || e.Item.Tag.GetType() != typeof(Function)) { e.DrawDefault = true; } else { e.DrawDefault = false; var func = e.Item.Tag as Function; var selected = e.Item.Selected; const int k_iconSize = 16; const int k_spacer = 2; var iconRect = new Rectangle(e.Bounds.Left + k_spacer, e.Bounds.Top + (e.Bounds.Height - k_iconSize) / 2, k_iconSize, k_iconSize); var textRect = new Rectangle(iconRect.Right + k_spacer, e.Bounds.Top, e.Bounds.Right - (iconRect.Right + k_spacer), e.Bounds.Height); using (var sf = new StringFormat()) { sf.FormatFlags = StringFormatFlags.NoWrap; sf.LineAlignment = StringAlignment.Center; e.Graphics.FillRectangle(selected ? SystemBrushes.Highlight : SystemBrushes.Window, textRect); e.Graphics.DrawIcon(Res.FunctionIcon, iconRect); if (e.Item.Text.StartsWith(func.Name)) { e.Graphics.DrawString(func.Name, lstFunctions.Font, selected ? SystemBrushes.HighlightText : SystemBrushes.WindowText, textRect, sf); if (e.Item.Text.Length > func.Name.Length) { var size = Util.MeasureString(e.Graphics, func.Name, lstFunctions.Font, textRect, sf); var argsRect = new RectangleF(textRect.Left + size.Width, textRect.Top, textRect.Width - size.Width, textRect.Height); if (!argsRect.IsEmpty) { e.Graphics.DrawString(e.Item.Text.Substring(func.Name.Length), lstFunctions.Font, selected ? _argsBrushHighlight : _argsBrush, argsRect, sf); } } } else { e.Graphics.DrawString(e.Item.Text, lstFunctions.Font, selected ? SystemBrushes.HighlightText : SystemBrushes.WindowText, textRect, sf); } e.DrawFocusRectangle(e.Bounds); } } }
private void logListView_DrawSubItem(object sender, DrawListViewSubItemEventArgs e) { var item = e.Item.SubItems[e.ColumnIndex]; e.DrawBackground(); var text = item.Text; Color forecolor; if (text.StartsWith(@"ERROR") || text.StartsWith(@"FATAL")) { forecolor = Color.DarkRed; } else if (text.StartsWith(@"WARN")) { forecolor = Color.FromArgb(181, 166, 16); } else if (text.StartsWith(@"DEBUG")) { forecolor = Color.Black; } else { forecolor = Color.DarkBlue; } TextRenderer.DrawText(e.Graphics, item.Text, this.logListView.Font, e.Bounds, forecolor, TextFormatFlags.Left); e.DrawFocusRectangle(e.Bounds); }
/// <summary> /// Draw the row. /// </summary> private void tsvMessages_DrawSubItem(object sender, DrawListViewSubItemEventArgs args) { CIXMessage message = args.Item.Tag as CIXMessage; if (message != null) { DrawRectElements elements = ComputeDrawRectElements(args.Graphics, message, args.Bounds); bool canThread = CanGroupByConversation(); Color textColor = UI.Forums.HeaderFooterColour; if (args.Item.Selected) { args.DrawFocusRectangle(elements.BoundaryRect); textColor = UI.Forums.SelectionTextColour; } // Draw the selection around the control. using (Pen edgePen = new Pen(args.Item.Selected ? UI.Forums.SelectionColour : BackColor)) { Color fillColour = args.Item.Selected ? UI.Forums.SelectionColour : (message.IsRoot ? UI.Forums.RootColour : UI.Forums.CommentColour); using (Brush backBrush = new SolidBrush(fillColour)) { args.Graphics.FillRoundedRectangle(edgePen, backBrush, elements.BoundaryRect); } } Font headerFont = FontForItem(message); using (Brush textBrush = new SolidBrush(message.Ignored ? UI.Forums.IgnoredColour : textColor)) { using (Brush priorityBrush = new SolidBrush(message.Ignored ? UI.Forums.IgnoredColour : UI.Forums.PriorityColour)) { // Draw arrows if message can be expanded or collapsed if (message.IsRoot && message.HasChildren && canThread) { Image arrowImage = IsExpanded(message) ? Resources.CollapseArrow : Resources.ExpandArrow; args.Graphics.DrawImage(arrowImage, elements.ExpanderRect); } // Draw read image Image readImage = ReadImageForMessage(message); args.Graphics.DrawImage(readImage, elements.ReadRect); // Draw author name args.Graphics.DrawString(message.Author, headerFont, message.Priority ? priorityBrush : textBrush, elements.AuthorRect); // Draw separator const string separatorChar = "•"; args.Graphics.DrawString(separatorChar, headerFont, textBrush, elements.Separator1Rect); // Draw date string dateString = (_showFullDate) ? message.Date.ToString("d MMM yyyy") + " " + message.Date.ToShortTimeString() : message.Date.FriendlyString(true); args.Graphics.DrawString(dateString, headerFont, textBrush, elements.DateRect); // Draw star icon Image starIcon = message.Starred ? Resources.ActiveStar : Resources.InactiveStar; args.Graphics.DrawImage(starIcon, elements.StarRect); // Draw ID field string idString = message.IsPseudo ? "Draft" : message.RemoteID.ToString(CultureInfo.InvariantCulture); args.Graphics.DrawString(idString, headerFont, textBrush, elements.IDRect); // Another separator args.Graphics.DrawString(separatorChar, headerFont, textBrush, elements.Separator2Rect); // Draw subject line string subjectLine = message.Subject; args.Graphics.DrawString(subjectLine, headerFont, textBrush, elements.SubjectRect, new StringFormat(StringFormatFlags.NoWrap)); } } } }
private void lvServerBrowser_DrawSubItem(Object sender, DrawListViewSubItemEventArgs e) { if (e.ColumnIndex == 0) { Image imgLock = Properties.Resources.theLock; Image imgUnlock = Properties.Resources.theUnlock; if (lvServerBrowser.Items[e.ItemIndex].SubItems[e.ColumnIndex].Text.Equals("true")) { e.Graphics.DrawImage(imgLock, lvServerBrowser.Items[e.ItemIndex].SubItems[e.ColumnIndex].Bounds.Location); } else { e.Graphics.DrawImage(imgUnlock, lvServerBrowser.Items[e.ItemIndex].SubItems[e.ColumnIndex].Bounds.Location); } e.DrawFocusRectangle(lvServerBrowser.Items[e.ItemIndex].SubItems[e.ColumnIndex].Bounds); } else { e.DrawText(); } }
/// <summary> /// Draw the row. /// </summary> private void DrawSubItem(object sender, DrawListViewSubItemEventArgs args) { InboxConversation message = args.Item.Tag as InboxConversation; if (message != null) { DrawRectElements elements = ComputeDrawRectElements(args.Graphics, message, args.Bounds); Color textColor = UI.Forums.HeaderFooterColour; if (args.Item.Selected) { args.DrawFocusRectangle(elements.BoundaryRect); textColor = UI.Forums.SelectionTextColour; } // Draw the selection around the control. using (Pen edgePen = new Pen(args.Item.Selected ? UI.Forums.SelectionColour : BackColor)) { Color fillColour = args.Item.Selected ? UI.Forums.SelectionColour : UI.Forums.RootColour; using (Brush backBrush = new SolidBrush(fillColour)) { args.Graphics.FillRoundedRectangle(edgePen, backBrush, elements.BoundaryRect); } } using (Brush textBrush = new SolidBrush(textColor)) { // Draw read image Image readImage = ReadImageForMessage(message); args.Graphics.DrawImage(readImage, elements.ReadRect); // Draw author name args.Graphics.DrawString(message.Author, _font, textBrush, elements.AuthorRect); // Draw separator const string separatorChar = "•"; args.Graphics.DrawString(separatorChar, _font, textBrush, elements.Separator1Rect); // Draw date string dateString = (_showFullDate) ? message.Date.ToString("d MMM yyyy") + " " + message.Date.ToShortTimeString() : message.Date.FriendlyString(true); args.Graphics.DrawString(dateString, _font, textBrush, elements.DateRect); // Draw ID field string idString = (message.IsDraft) ? "Draft" : message.RemoteID.ToString(CultureInfo.InvariantCulture); args.Graphics.DrawString(idString, _font, textBrush, elements.IDRect); // Another separator args.Graphics.DrawString(separatorChar, _font, textBrush, elements.Separator2Rect); // Draw subject line string subjectLine = message.Subject; args.Graphics.DrawString(subjectLine, _font, textBrush, elements.SubjectRect, new StringFormat(StringFormatFlags.NoWrap)); } } }
private void listViewLog_DrawSubItem(object sender, DrawListViewSubItemEventArgs e) { var item = e.Item.SubItems[e.ColumnIndex]; e.DrawBackground(); var text = item.Text; Color forecolor; if (text.StartsWith(@"ERROR", StringComparison.CurrentCultureIgnoreCase) || text.StartsWith(@"FATAL", StringComparison.CurrentCultureIgnoreCase)) { forecolor = _darkRedColor; } else if (text.StartsWith(@"WARN", StringComparison.CurrentCultureIgnoreCase)) { forecolor = Color.FromArgb(181, 166, 16); } else if (text.StartsWith(@"DEBUG")) { forecolor = Color.Black; } else { forecolor = Color.DarkBlue; } TextRenderer.DrawText(e.Graphics, item.Text, listViewLog.Font, e.Bounds, forecolor, TextFormatFlags.Left); e.DrawFocusRectangle(e.Bounds); }