Avatar billede huk Nybegynder
24. september 2011 - 14:18 Der er 4 kommentarer og
1 løsning

Forslag til at komme i gang med billede viewer...

Hej

På studiet er vi blevet stillet en lille selvvalgt opgave.

Jeg kunne godt tænke mig at lave en fotoviewer, hvor der er en masse thumbnails i en liste (gerne med en vertical scrollbar ) . Jeg tænker at de skal stå 3 og 3 på hver række. Dvs hvis der er 27 billeder skal der være 9 rækker af 3 billeder. Hved siden af thumbnails'ene vil jeg have et billede vist. Evt ved mouseclick eller mouseOver.

Det jeg søger er ikke en løsning i kode til hvordan det skal udføres, da jeg meget gerne selv vil lave det, men Derimod bare en idé til hvilke komponenter jeg kan bruge til det.

Det store billede er vel bare en "Image container". Event'en med mouseclick eller mouse over er jeg også med på. Men jeg ved ikke helt mht thumbnails'ene. Bør jeg lægge dem i et datagrid, eller kan man lave det i et stackpanel, eller måske en listbox?

Måske hvis der en 3rd-party komponent der er genial til et sådan brug, kan det også bruges.....

Jeg håber på at i har nogle super gode ideer.....

/huk
Avatar billede janus_007 Nybegynder
24. september 2011 - 18:47 #1
Hej huk

Du kan bruge .NET Drawing til det :)

http://msdn.microsoft.com/en-us/library/xs6ftd89.aspx

Vil du lave det i WPF?
Avatar billede huk Nybegynder
24. september 2011 - 19:43 #2
Hej Janus

Det vil jeg lige tage et kig på, og så vender jeg lige tilbage.....

Er det lettere end dem jeg foreslog, eller er det simpelthen bare bedre?

Det er valgfrit om det laves som windows form eller WPF. Jeg er lidt ny indenfor C#, så jeg kender ikke 100 % fordelene ved hhv windows form og WPF.

Er der ikke mange flere grafiske muligheder i WPF, eller? Og hvad er hagerne så ved det?
Avatar billede janus_007 Nybegynder
24. september 2011 - 22:03 #3
Jeg synes ikke rigtigt du foreslog noget som sådan?

Drawing giver dig bare nogle muligheder til resizing mv.

I WPF kan du som du selv er inde på benytte et StackPanel...

noget ala
<StackPanel Name="panel">
    </StackPanel>

Og så :
var imagePaths = GetAllImagePathsInFolder(....);
foreach(var path in imagePaths )
Image i = new Image();
BitmapImage image = new BitmapImage();
image.BeginInit();
image.UriSource = new Uri(path, UriKind.Relative);
image.EndInit();
i.Source = src;
i.Stretch = Stretch.Uniform;
panel.Children.Add(i);

sådan ca... :)

Så kan du resize image som du har lyst til sådan at det bliver en thumbnail.
Avatar billede janus_007 Nybegynder
24. september 2011 - 22:05 #4
Korrektion...
image.EndInit();
i.Source = src;

skal være

image.EndInit();
i.Source = image;
Avatar billede huk Nybegynder
25. september 2011 - 22:47 #5
Okay. det tror jeg at jeg kan komme videre med.

Men kan man lave flere kolonner i et stackpanel?

I så fald, kan man så lave det så man udfylder kolonner inden en ny række påbegyndes?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester