mboost-dp1

Spørgsmål til WPF og spørgsmål til Forms NotifyIcon


Gå til bund
Gravatar #1 - praktikant muffe AKA pewbe
27. aug. 2010 22:31
1. Nu er jeg endelig gået igang i WPF, men jeg kan ikke finde ud af at skifte ikonet på programmet.
I en Forms applikation brugte jeg bare:
Me.Icon = My.Resources.Name_Of_Icon

Findes der ikke nogen simpel måde i WPF?

2. Jeg har brug for at skrive noget tekst på et ikon i tray-området (class sakset herfra), men bruger jeg:
g.Clear(Color.Transparent)

så ser teksten utrolig træls ud.
SpeedFan og BatteryCare klarer det noget bedre.
Gravatar #2 - Windcape
27. aug. 2010 23:53
pewbe (1) skrev:
Findes der ikke nogen simpel måde i WPF?
Jo. http://msdn.microsoft.com/en-us/library/system.win...

pewbe (1) skrev:
Jeg har brug for at skrive noget tekst på et ikon i tray-området
Altså noget i stil med dette her ?
Gravatar #3 - Windcape
28. aug. 2010 00:30
Update til spørgsmål 2:

Så vidt jeg kan se er problemet antialias rendering, og valget af font.

Men jeg synes at følgende er læsbart på min skærm:


using WinForms = System.Windows.Forms;
using Drawing = System.Drawing;

...

var notifyIcon = new WinForms.NotifyIcon();
var notifyFont = new Drawing.Font("Microsoft Sans Serif", 6,
Drawing.FontStyle.Regular, Drawing.GraphicsUnit.Point);
var notifyBrush = new Drawing.SolidBrush(Drawing.Color.White);
var notifyBitmap = new Drawing.Bitmap(16, 16);

using (var g = Drawing.Graphics.FromImage(notifyBitmap))
{
g.CompositingQuality = Drawing.Drawing2D.CompositingQuality.HighSpeed;
g.SmoothingMode = Drawing.Drawing2D.SmoothingMode.HighSpeed;

g.DrawString("98%", notifyFont, notifyBrush, 0, 0);
g.DrawString("1:38", notifyFont, notifyBrush, 0, 9);

notifyIcon.Icon = Drawing.Icon.FromHandle(notifyBitmap.GetHicon());
}

notifyIcon.Visible = true;


Med resultatet: notifytraytext.png
Gravatar #4 - praktikant muffe AKA pewbe
28. aug. 2010 06:26
Windcape (3) skrev:
Update til spørgsmål 2:
Med resultatet: notifytraytext.png

Hvordan ser det ud over en hvid baggrund?
Gravatar #5 - Windcape
28. aug. 2010 12:58
Usynligt går jeg ud fra. Da jeg har brugt en hvid tekst...
Gravatar #6 - praktikant muffe AKA pewbe
29. aug. 2010 16:52
Windcape (5) skrev:
Usynligt går jeg ud fra. Da jeg har brugt en hvid tekst...

Selvfølgelig, my bad XD
Men jeg tror faktisk jeg holder mig til sort baggrund, da det så ikke betyder noget hvilken farve baggrunden på skrivebordet er.

Windcape (2) skrev:
Jo. http://msdn.microsoft.com/en-us/library/system.win...

Jeg kan ikke rigtig greje hvordan jeg gør det?
Vil du give et eksempel?
(Fx har jeg "Ikon1" i Resources)
Gravatar #7 - Windcape
29. aug. 2010 17:00
#6

Der er et eksempel i linket. Hvilken del af det vil du gerne have forklaret?

Læs evt. http://msdn.microsoft.com/en-us/library/aa970069.a... for at forstå pack URIs bedre.


// Set an icon using code
Uri iconUri = new Uri("pack://application:,,,/WPFIcon2.ico", UriKind.RelativeOrAbsolute);
this.Icon = BitmapFrame.Create(iconUri);
Gravatar #8 - praktikant muffe AKA pewbe
29. aug. 2010 17:59
Jeg har endelig fået det til at virke med hjælp herfra.
Gravatar #9 - Windcape
29. aug. 2010 18:04
#8

Den kode jeg postede i #7 fra det oprindelige link, virker ellers fint hos mig! Din fejl har sikkert været at du har brugt en forkert pack URI.

Her er mit eksempelprojekt: http://dl.dropbox.com/u/1744224/Upload/WpfApplicat...

Dit link til MSDN Forums er også outdated!
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login