システムトレイに温度を表示するときにCoreTempと同じように、.icoファイルを表示するのではなく、システムトレイに2〜3の更新可能な文字を表示しようとしています:アイコンの代わりにシステムトレーにテキストを書き込む
Font fontToUse = new Font("Microsoft Sans Serif", 8, FontStyle.Regular, GraphicsUnit.Pixel);
Brush brushToUse = new SolidBrush(Color.White);
Bitmap bitmapText = new Bitmap(16, 16);
Graphics g = Drawing.Graphics.FromImage(bitmapText);
IntPtr hIcon;
public void CreateTextIcon(string str)
{
g.Clear(Color.Transparent);
g.DrawString(str, fontToUse, brushToUse, -2, 5);
hIcon = (bitmapText.GetHicon);
NotifyIcon1.Icon = Drawing.Icon.FromHandle(hIcon);
DestroyIcon(hIcon.ToInt32);
}
は、悲しいことに、これはCoreTempが取得する何のような貧弱な結果は何も発生しない:私は次のコードと一緒に私のWinFormsアプリケーションにNotifyIconを使用しています
あなたはソリューションは、フォントサイズを大きくすることだと思うだろうが、サイズ8を超えるものは、画像内に収まりません。ビットマップを16x16から32x32に増やすことは何もしません。
次に、「55」ではなく「8.55」を表示したいという問題があります。アイコンの周りに十分なスペースがありますが、使用できないように見えます。
これを行うには良い方法はありますか?なぜウィンドウズは次のことをすることができますか?できません。
更新:良い解決策のための@NineBerryため
感謝。追加するには、Tahoma
が使用するのに最適なフォントであることがわかります。
ここで使用するのに最適なフォントです。 –