Ok donc je commence à être coincé dans mon design et à obtenir le bon style.WinForms Dégradé (Image ou par code) - Événement OnDraw
Mon thème utilise une interface graphique de style kryptonForm mais kyryptonForms ne pas avoir un pré conçu ListView, donc im avoir à construire moi-même
Mon application est un système de messagerie basé sur XMPP/Jabber afin que vous puissiez deviner comment J'aimerais que ma liste de contacts soit conçue.
J'ai fait la plupart du positionnement, mais j'ai du mal à styliser chaque rangée de contact.
Im visant une superposition transparente simmerler à la liste de messagerie en direct Contacter MSN
Heres mon OnDraw Code événement atm et im du mal à trouver la meilleure façon de faire le gradient
private void ContactItem_OnPaintDraw(object sender, DrawListViewItemEventArgs e)
{
Rectangle ImageRect = e.Bounds;
ImageRect.Inflate(-2, -2);
ImageRect.Width = 32;
Rectangle TextRect = e.Bounds;
TextRect.X = ImageRect.Right + 2;
TextRect.Width = e.Bounds.Width - TextRect.X;
Rectangle IconRect = TextRect;
IconRect.Inflate(-1, 0);
IconRect.Y = ImageRect.Bottom - 16;
IconRect.Width = 16;
IconRect.Height = 16;
if ((e.State & ListViewItemStates.Selected) != 0)
{
// Draw the background and focus rectangle for a selected item.
e.Graphics.FillRectangle(ContactListBackgroundBrush, e.Bounds);
e.DrawFocusRectangle();
}
else
{
// Draw the background for an unselected item.
e.Graphics.FillRectangle(Brushes.White, e.Bounds);
}
if (ListViewContacts.View != View.Details)
{
e.Graphics.DrawImage((Image)Resources.UserIconDefault, ImageRect);
TextRenderer.DrawText(e.Graphics, e.Item.Text, e.Item.Font, TextRect, e.Item.ForeColor, TextFormatFlags.GlyphOverhangPadding);
}
}
Et la ContactListBackgroundBrush
var est comme si
private Brush ContactListBackgroundBrush = new SolidBrush(Color.FromArgb(33, 162, 191));
son ce que je dois convertir à l'élément de style
alt text http://screensnapr.com/u/yeq8o0.png
Je cherche à obtenir ce style Highlighted sans importer toutes les fenêtres spécifiques 7 fichiers DLL que l'application est utilisée pour Windows XP ainsi.
espérons que vous les gars peuvent me aider :)
Utilisez-vous Winforms? (Je suppose que c'est ce que vous utilisez en raison de l'utilisation de 'DrawListViewItemEventArgs') Probablement une bonne idée d'ajouter" Winforms "à votre liste de balises. Je serais probablement en mesure d'aider si c'était wpf ... –
Yea WinForms, Ajouté à la liste des tags, désolé à ce sujet. Merci bien – RobertPitt
a également ajouté à votre titre, car il est pertinent, et supprimé C#, ce qui n'était pas pertinent. –