Új hozzászólás Aktív témák

  • Tomi_78

    tag

    Sziasztok!
    Mivel nem találtam kérdésemnek megfelelő helyet, ezért nyitottam ezt a fórumot neki, de persze mások is feltehetik itt kérdéseiket (ha esetleg valaki mégis tudja, hogy egy már létező téma lenne a tökéletes hely neki, hát elnézést, és nyugodtan áthelyezhető).
    Szóval, ide nem konkrét programnyelvekkel, hanem általános programozási problémákkal kapcsolatos kérdéseket várok.
    Ami pedig nekem vár megválaszolásra, az a következő kérdés: alkalmazásom ablakának átméretezésekor a benne lévő grafikai elemeket helyezném át úgy, hogy az új mérethez alkalmazkodjon az elhelyezkedésük. Tehát ami középen volt, az maradjon középen, ami szélebbre, az az új mérethez arányosítottan szélebbre.
    A következő kódot írtam hozzá C#-ban, de nem nagyon hozza a várt eredményt, pl. az ablak kisebbítésekor minden a bal szélére vándorol:
    void MainFormResize(object sender, EventArgs e)
    {
       int regiszelszazalek,regimagszazalek;
                
       foreach (var jatelem in jatelemeilista) {
           //jatelem.xhely*=Width/ablakszel; //Ezek a legrosszabbak!
           //jatelem.yhely*=Height/ablakmag;
           regiszelszazalek=(100*jatelem.xhely)/ablakszel; //Ez sem tökéletes.
           regimagszazalek=(100*jatelem.yhely)/ablakmag;
           jatelem.xhely=(Width*regiszelszazalek)/100;
           jatelem.yhely=(Height*regimagszazalek)/100;
       }
       Invalidate();
       ablakszel=Width;
       ablakmag=Height;
    }

    Mi lehet a baj vele? Elméletileg mindkettő jónak tűnik, de mégsem azok. Esetleg van valami harmadik és tökéletes megoldás?

  • galaxy55

    kezdő

    LOGOUT blog

    válasz Tomi_78 #1 üzenetére

    Nem értem, miért nem találtál megfelelő helyet. Csak megnyitva a fórumot látok kettőt is:
    1.
    2.

    A problémád jó eséllyel C# specifikus. Ami meg nem olyan, annak tökéletesen megfelel az 1. is. Szerintem.

    [ Szerkesztve ]

Új hozzászólás Aktív témák