Huom! Nämä wikisivut ovat osittain vielä työn alla, osa sisällöstä saattaa olla puutteellista. Ongelmakohtien viereen voit jättää kommentin, yliopiston käyttäjät myös pystyvät (ja saavat) muokata sivuja.
Jypelin käyttöohjeet » Sommittelu
Sommitteluilla (layout) asemoidaan käyttöliittymän elementtejä automaattisesti. Sommitteluiden avulla välttyy itse kirjoittamasta koodia, joilla komponentit sijoitetaan paikoilleen. Näin käyttöliittymä on myös helppo saada toimimaan erikokoisilla ruuduilla.
Jypelissä on valmiina seuraavat sommittelut:
HorizontalLayout
sommittelee widgetit vierekkäin vaakasuunnassa.VerticalLayout
sommittelee widgetit päällekkäin pystysuunnassa.
Sommittelua varten tarvitaan aina joku emo-widgetti, jonka sisälle asemoitavat oliot lisätään. Sommittelun voi antaa suoraan rakentajassa tai käyttämällä ominaisuutta Layout
. Tällöin emo-widgettiin lisätyt oliot asemoidaan sommittelun mukaan:
Widget alusta = new Widget(new HorizontalLayout());
Add(alusta);
Widget lapsiolio = new Widget(kuva);
alusta.Add(lapsiolio);
// ...
1. Sommiteltavista olioista
Sommittelu tapahtuu seuraavien sommiteltavien olioiden ominaisuuksien perusteella:
PreferredSize
- Kuinka suuri olio haluaisi ollaHorizontalSizing
- Kuinka olio käyttäytyy jos käytössä oleva leveys on eri kuin toivottu (PreferredSize.X)VerticalSizing
- Kuinka olio käyttäytyy jos käytössä oleva korkeus on eri kuin toivottu
HUOM! Olion koon muuttaminen ei saa muuttaa PreferredSize
-ominaisuutta! (koska jos layout asettaa koon, mikä muuttaa toivottua kokoa, mikä aiheuttaa uuden koon muutoksen, mikä muuttaa toivottua kokoa, mikä taas...)
Widget lista = new Widget(new VerticalLayout());
lista.BorderColor = Color.Black;
lista.Color = Color.Transparent;
Add(lista);
lista.Add(new Label("kissa"));
Widget laatikko = new Widget(100, 20);
laatikko.Color = Color.Blue;
lista.Add(laatikko);
lista.Add(new Widget(taulunKuva));
lista.Add(new Label("koira"));
Jos jonkin asemoitavan olion kokoa halutaan muuttaa, tulee se tehdä asettamalla sen PreferredSize
. Huomaa, että koon asettaminen suoraan ei toimi, sillä sommittelu vastaa koon asettamisesta. Tässä esimerkissä kuvan koko asetetaan pienemmäksi lauseella
taulu.PreferredSize = new Vector(100, 100);
Widget lista = new Widget(new VerticalLayout());
lista.BorderColor = Color.Black;
lista.Color = Color.Transparent;
Add(lista);
lista.Add(new Label("kissa"));
Widget laatikko = new Widget(100, 20);
laatikko.Color = Color.Blue;
lista.Add(laatikko);
Widget taulu = new Widget(taulunKuva);
taulu.PreferredSize = new Vector(100, 100);
lista.Add(taulu);
lista.Add(new Label("koira"));
Olioiden asettelua saa "väljemmäksi" muuttamalla sommittelun ominaisuuksia. Spacing
-ominaisuus vaikuttaa olioiden väliin jäävään tyhjään tilaan. Huomaa, että sitä ei ole määritelty ILayout
-rajapinnassa, vaan VerticalLayout
-luokassa. Padding
-ominaisuudet asettavat reunoille jäävän tilan.
VerticalLayout sommittelu = new VerticalLayout();
sommittelu.Spacing = 20;
sommittelu.TopPadding = 30;
sommittelu.BottomPadding = 10;
sommittelu.LeftPadding = 10;
sommittelu.RightPadding = 30;
VerticalLayout sommittelu = new VerticalLayout();
sommittelu.Spacing = 20;
sommittelu.TopPadding = 30;
sommittelu.BottomPadding = 10;
sommittelu.LeftPadding = 10;
sommittelu.RightPadding = 30;
Widget lista = new Widget(sommittelu);
lista.BorderColor = Color.Black;
lista.Color = Color.Transparent;
Add(lista);
lista.Add(new Label("kissa"));
Widget laatikko = new Widget(100, 20);
laatikko.Color = Color.Blue;
lista.Add(laatikko);
lista.Add(new Widget(taulunKuva));
lista.Add(new Label("koira"));
3. Kiinteä koko
Emo-oliolle voidaan asettaa kiinteä koko:
Widget lista = new Widget(400, 400);
lista.SizingByLayout = false;
lista.Layout = new VerticalLayout();
Widget lista = new Widget(400, 400);
lista.SizingByLayout = false;
lista.Layout = new VerticalLayout();
lista.BorderColor = Color.Black;
lista.Color = Color.Transparent;
Add(lista);
lista.Add(new Label("kissa"));
Widget laatikko = new Widget(100, 20);
laatikko.Color = Color.Blue;
lista.Add(laatikko);
lista.Add(new Widget(taulunKuva));
lista.Add(new Label("koira"));
Oliot voidaan asettaa täyttämään ylijäävä tila. Tämän voi tehdä erikseen pysty- ja vaakasuunnassa:
laatikko.HorizontalSizing = Sizing.Expanding;
laatikko.VerticalSizing = Sizing.Expanding;
Widget lista = new Widget(400, 400);
lista.SizingByLayout = false;
lista.Layout = new VerticalLayout();
lista.BorderColor = Color.Black;
lista.Color = Color.Transparent;
Add(lista);
lista.Add(new Label("kissa"));
Widget laatikko = new Widget(100, 20);
laatikko.Color = Color.Blue;
laatikko.HorizontalSizing = Sizing.Expanding;
laatikko.VerticalSizing = Sizing.Expanding;
lista.Add(laatikko);
Widget taulu = new Widget(taulunKuva);
taulu.HorizontalSizing = Sizing.Expanding;
lista.Add(taulu);
lista.Add(new Label("koira"));
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.