Come fare in modo che Larghezza e Altezza riflettano Scala Trasformazione e come Scala Trasformazione impostando Altezza e Larghezza?

StackOverflow https://stackoverflow.com/questions/1404217

Domanda

Ho un problema con l'uso di ScaleTransform su una tela in Silverlight, la tela viene ridimensionata correttamente, tuttavia i valori di altezza e larghezza rimangono sempre gli stessi.
per esempio. una tela 100x100 ridimensionata in modo che appaia 200x200 è ancora 100x100 per quanto riguarda i valori di altezza e larghezza, come possono essere aggiornati per riflettere le nuove dimensioni.

Un altro problema correlato è come modificare l'altezza e la larghezza di un elemento e fare in modo che questo ridimensiona l'elemento Canvas o XAML in modo appropriato. l'impostazione di un elemento 100x100 su 200x200 rende tutto al suo interno due volte più grande - questa dovrebbe essere una soluzione in cui solo l'altezza e la larghezza dell'elemento sono impostate per modificare la scala.

Queste domande sono legate allo stesso problema: si spera che esista una soluzione che funzioni in Silverlight 3.0


L'altezza e la larghezza devono essere aggiornate in modo che quando questa tela si trova in uno ScrollViewer, la barra di scorrimento si aggiorna correttamente per la nuova dimensione, ciò accade se l'altezza e la larghezza sono assegnate manualmente alla nuova dimensione in scala, ma deve funzionare per tutte le dimensioni.
Al contrario, devo avere un'altra area di disegno che quando l'altezza e la larghezza vengono modificate, gli elementi all'interno vengono ridimensionati in modo appropriato in quanto si tratterà di un'icona ridimensionabile da utilizzare sullo stesso o su un altro quadro.


Se ciò non è possibile in Silverlight direttamente, esiste comunque un effetto nel codice, se non in XAML, poiché ciò è possibile in WPF se si utilizza un ImageBrush, tuttavia Silverlight non lo supporta e necessita di un canvas scalabile, e una tela che, se ridimensionata, aggiorna la propria altezza e larghezza.

È stato utile?

Soluzione

Un UIElement non è a conoscenza di alcuna trasformazione ad esso applicata. Quindi non è possibile che le sue proprietà di larghezza e altezza riflettano la trasformazione.


Beh, un'opzione è non usare affatto una trasformazione ma usare un ViewBox (dal toolkit di Silverlight)

La viewbox ridimensiona il contenuto per riempire sempre la viewbox.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top