Vra

Ek wil 'n c # aansoek met verskeie vensters wat al deursigtige met 'n paar teks op te skep.

Die moeilike deel is om hierdie vorms te sit op die top van die lessenaar, maar onder die lessenaar ikone. Is dit moontlik?

Was dit nuttig?

Oplossing

Net maak die venster deursigtige is baie reguit vorentoe:

this.BackColor = Color.Fuchsia;
this.TransparencyKey = Color.Fuchsia;

Jy kan iets soos dit te doen om dit te laat sodat jy kan nog steeds interaksie met die rekenaar of enigiets anders onder jou venster:

public const int WM_NCHITTEST = 0x84;
public const int HTTRANSPARENT = -1;

protected override void WndProc(ref Message message)
{
    if ( message.Msg == (int)WM_NCHITTEST )
    {
        message.Result = (IntPtr)HTTRANSPARENT;
    }
    else
    {
        base.WndProc( ref message );
    }
}

Ander wenke

Dankie vir die wenke Jeff. Sy nog nie heeltemal wat ek na. Ek sou effektief soos die venster verskyn asof dit deel van die lessenaar so ikone op die top van my vorm kon sit.

Miskien is daar 'n ander manier om dit te doen. Kan ek eintlik teks en grafiese direk trek op na die lessenaar?

Die metode hierbo beskryf deur Jeff Hillman is effektief in die maak van die venster deursigtige, wat jou die vermoë om dit voorkom asof dit deel van die lessenaar (wat jy genoem het is jou doel moet gee.

Een probleem wat jy kan loop in, wat ek onlangs het loop in sowel, is die tekens om die venster met 'n anti-aliasing vlae ingestel. Spesifiek, met behulp van DrawText, enige teks wat is gelewer met anti-aliasing vlae ingestel word gelewer asof die agtergrond deursigtig was nie. Die eindresultaat is dat jy teks met 'n effense off-kleur grens rondom dit kry. Ek is seker dit sal geld vir enigiets te hou anders as goed, al het ek nie probeer het.

Is daar enige gedagtes oor hoe om op te los dat?

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top