Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Riposizionamento immagine all'interno di un Panel al resize di una for...
martedì 26 marzo 2013 - 13.10
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
C#
|
Visual Studio 2010
serraiello
Profilo
| Newbie
34
messaggi | Data Invio:
mar 26 mar 2013 - 13:10
Salve a tutti,
spiego quello che è il mio problema, spero qualcuno mi possa aiutre ...
dentro una form ho inserito un Panel, al Panel ho inserito un'immagine di sfondo con modalità di visualizzazione Strech.
all'interno del Panel io inesrisco delle immagini in modo dinamico e devono avere determinate posizioni nel panel rispetto all'immagine di sfondo.
Purtroppo ho dei problemi nelle posizioni sia all'inserimento sia quando il form cambia di dimensioni...
Nell'inserirle non riesco a stabilire la posizione esatta esatta, rispetto allo sfondo poichè questo cambia di dimensioni insieme alla form...
al tempo stesso al ridimensionamento della form le immagini si ritrovano sempre a tutt'altre posizioni....
Qualcuno ha affrontato mai un problema simile??
HELP!!!
ridaria
Profilo
| Expert
905
messaggi | Data Invio:
mar 26 mar 2013 - 16:41
prendi le dimensioni della form ed in base a queste stabilisci left e top della immagine da inserire.
Se la form cambia dimensione, all'evento resize della form ridefinisci left e top della nuova immagine.
CIAO
Riccardo D'Aria
serraiello
Profilo
| Newbie
34
messaggi | Data Invio:
mar 26 mar 2013 - 17:21
ciao grazie per la risposta,
si ci avevo già provato, (mel mio caso prendevo le dimensioni del panel, visto che le immagini sono dentro questo tipo di controllo)...
purtroppo le immagini si spostano in modo errato rispetto all'immagine di sfondo del panel stesso, è questo che non riesco a fare ...
in pratica nell'immagine di sfondo ci sono delle linee e ogni immagine che vado ad inserire deve stare tra due linee...
altre soluzioni??
Vinsent
Profilo
| Senior Member
268
messaggi | Data Invio:
mar 26 mar 2013 - 20:08
A primo "acchitto" credo sia questione di fare dei bei calcoli...sopratutto se devi ridimensionare anche le immagini che aggiungi e a proposito come fai questo?
Comunque, per me, ti stai complicando la vita....ti basterebbe avere un' immagine "di base" e scrivere le altre su questa, poi riassegnarla al panel in base alle modifiche.
In questo modo, hai una singola immagine con dimensioni che conosci e sai dove inserire le altre immagini a prescindere dalle dimensioni del form, per il resize ci penserà la proprietà Stretch.
In pratica devi avere un' immagine statica e una "lista" di "oggetti", ogni oggetto contiene l' immagine da aggiungere e le coordinate. Quindi, quando aggiungi/rimuovi un immagine operi sugli oggetti della lista, prendi gli oggetti della lista è scrivi le immagini su quella "di base", dopodichè la assegni al panel.
Spero che la spiegazione sia decifrabile...se conoscevo C# facevo prima a farti un' esempio....
Ciao
serraiello
Profilo
| Newbie
34
messaggi | Data Invio:
mar 26 mar 2013 - 22:43
ciao e grazie per la risposta,
in effetti io non ridimensionavo le immagini (volevo pensarci dopo
)
E' interessante la proposta di "creare" un'immagine singola e assegnarla al panel ...
Anche se non so come si faccia una cosa del genere, penso sia più facile che lavorare sul cambio delle proporzioni al resize del form....
Premetto che le immagini sono già in una lista (dato che dovevo aggiungere diverse immagini su più righe.. insomma un casino) ... penso che mi tocca capire come fare per creare l'immagine di sfondo, con le liste di immagini alle posizioni giuste ...
Certo se conosci c# mi avresti fatto un grande favore con un esempio ....
Comunque grazie, mi hai dato un'ottima idea, ora provo a buttar giù qualcosa e vi faccio sapere ...
Ovviamente sono aperto anche ad altri consigli (non si sa mai...)
Ciao
Sono costretto a modificare quello che avevo scritto, perchè mi ero dimenticato che sopra ogni immagine che aggiungo è presente un ToolTip descrittivo...
mi spiace, perchè l'idea mi piaceva... ma così non credo vada bene
Vinsent
Profilo
| Senior Member
268
messaggi | Data Invio:
mer 27 mar 2013 - 19:41
Ad ogni "resize" dovresti prendere le dimensioni di partenza e quelle finali, fare la differenza per ottenere lo "zoom" e se ad esempio hai una griglia 3x3 dividere x3, questo valore va aggiunto alle dimensioni delle immagini per il loro resize...poi devi anche posizionarle con un calcolo simile...e tenere presente se il ridimensionamento è positivo o negativo...un bello sbattimento...per quello ti consigliavo un' unica immagine di dimensioni fissa e far fare il resto al Panel.
Il tutto con dei presupposti che ho intuito...il Panel come lo ridimensioni? Le immagini come le aggiungi? e soprattutto a cosa serve tutto questo???? sarebbe utile saperlo...magari ci stiamo facendo delle seghe mentali per niente...
Per i tooltip esistono le classi Region e GraphicPath che dovrebbero essere d' aiuto...ma non le ho mai usate...
Comunque, aspetto anch' io "altri consigli"
!
Ciao!
serraiello
Profilo
| Newbie
34
messaggi | Data Invio:
gio 28 mar 2013 - 18:16
Signori,
le cose si complicano ....
poichè oltre a capire in quale posizione mettere queste benedette immagini, in relazione ad un'immagine di sfondo, quest'altra immagine di sfondo può cambiare.....
Devo dunque cercare di spiegare meglio ma mia situazione: esempio:
------------------------------
img1 - img2 - img3 (Array(1))
------------------------------
img1 (Array(2))
-----------------------------
però può capitare che invece di avere due linee vuote io ne posso avere 3 o 10 etc ...
le Immagini come ho indicato sono contenute in un array e riesco a farle visualizzare, ma no al centro delle linee, e considerando lo strech dell'immagine, il resize, e il fatto che il numero delle linee può variare, la cosa mi complica la vita parecchio ....
SUper HELP!!!
serraiello
Profilo
| Newbie
34
messaggi | Data Invio:
ven 29 mar 2013 - 14:44
ok, ieri sera mi si è accesa una piccola lampadina...
in pratica io conosco le dimensioni di ogni rigo, quindi, con le proporzioni, riesco a stabilire le dimensioni corrette in ogni situazione ...
Il problema ora è solo al resize della form e i problemi sono 2:
1- il resize che avevo provato a fare io è questo:
int height_panel = panel8.Height;
foreach (PictureBox img in panel8.Controls)
{
int differenza = 0;
if (HeightPanel > height_panel) //sta rimpicciolendo il form
{
differenza = HeightPanel - height_panel;
img.Top = img.Top - differenza;
}
else if (HeightPanel < height_panel) //sta ingrandendo
{
differenza = height_panel - HeightPanel;
img.Top = img.Top + differenza;
}
}
HeightPanel = height_panel;
però non funziona benissimo, non capisco come mai....
2- Poi quando fa il resize l'immagine "sfarfalla" e non capisco il perchè, anche rimuovendo il foreach, pensando che fosse quello ...ma niente
ho anche provato a non inserire nessuna immagine ma lo sfarfallio rimane lo stesso...
Grazie in anticipo
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !