Vra

Ek sou graag wou weet of dit moontlik is om mooi vorm uitwerking op die kompak raamwerk te skep.

My plan is dat wanneer 'n gebruiker 'n beeld op die belangrikste vorm dit oopgemaak in 'n nuwe vorm kies, hierdie oomblik werk. Wat ek wil nou te doen is om die vorm wat die groot formaat foto die rand (links of regs) van die skerm af te laai op ongeveer 4 pixels hoog dan gly in die lig bevat. Sodra die vorm is ten volle op die skerm dan brei die hoogte totdat dit treffers die maksimum vir die skerm.

Op geheg Ek wil graag die hoogte terug na die 4 pixels hoog en die skyfie oor die rand weer verminder voor die afhandeling van die vorm.

Ek het die kode hieronder toe instantiëren die vorm en die eiendom dp.Top was altyd 0 ongeag dp.Width == 240

probeer
DisplayPicture dp = new DisplayPicture(ImageUrl);
dp.WindowState = FormWindowState.Normal;
dp.Left = dp.Width * -1;
dp.Top = (dp.Height / 2) - 2;
dp.Height = 4;
dp.ShowDialog();       

In die DisplayPicture vorm ek het ook die volgende probeer beweeg die vorm maar as dit nie is besig om die Top eiendom hierdie kode nie doen nog saak.

void t_Tick(object sender, EventArgs e)
{
    if (this.Left < 0)
        this.Left += 5;

    if (this.Left > -1)
    {
        this.Left = 0;
        if (this.Height < pictureBox1.ClientRectangle.Height)
        {
            this.Height += 4;
            this.Top -= 2;
        }

        if ((this.Left == 0) && (this.Top == 0))
            t.Enabled = false;

    }
}

Enige hulp sal waardeer word!

TIA

OneSHOT

Was dit nuttig?

Oplossing

Om dit te doen, begin met 'n PictureBox beheer wat jou beeld gelaai het. Stel die hoogte tot 4, die breedte aan die wydte van jou vorm, en (baie belangrik) stel die SizeMode van die PictureBox om StretchImage .

Volgende, posisioneer die PictureBox die skerm af deur die oprigting van Top na 0 en Left om -Width. Sit 'n Timer beheer oor jou vorm met 'n tussenpose van 100 (of wat ook al), en het sy geval geleidelik beweeg die PictureBox om die reg tot sy linker eiendom is 0. Sodra jy daardie punt bereik, het die timer gebeurtenis geleidelik verhoog die hoogte tot dit bereik die hoogte van die vorm.

Jy sal waarskynlik te doen het met flikker, maar dit moet kry wat jy begin.

Update: Ek lees net jou vraag 'n bietjie nader, en besef dat jy eintlik wil hê dat die vorm self te beweeg van agter skerm om die volle screen. Dit is nie moontlik as jy wil hê dat die hele vorm (insluitend die titel bar aan die bokant) lewendig in hierdie manier, maar jy kan hierdie soort van doen deur die oprigting van die vorm se FormBorderStyle (of ek dink dit is net genoem BORDER in die Framework) om een. Met die BORDER stel om een, die verandering van die Hoogte, sal Breedte, Top en links eienskappe eintlik 'n sigbare uitwerking op die vorm (hoewel die vorm sonder grense sal wees). Hierdie eienskappe is anders heeltemal geïgnoreer in Windows Mobile , wat waarskynlik die rede waarom jou kode het nie verskyn om iets te doen.

Update 2: hier is my antwoord om 'n soortgelyke WM vraag, wat kan help om jou geanimeerde venster lyk soos 'n ware venster maak.

scroll top