Perché il mio ImageBrush scalando un'immagine piastrella?
-
11-09-2019 - |
Domanda
Ho la seguente dichiarazione ImageBrush che voglio usare per disegnare lo sfondo di una finestra.
<ImageBrush x:Key="Fondo"
ImageSource="Fondo.png"
Viewport="0,0,0.1,0.1" TileMode="Tile"/>
Se ho impostato utilizzando uno StaticResource vincolante alla proprietà sfondo della finestra del pennello è reso in modo corretto, ma l'immagine viene scalato. Questo è un comportamento che non voglio, io voglio l'applicazione per utilizzare l'immagine con la risoluzione originale e ripetere se necessario per riempire lo sfondo della finestra, senza alcun tipo di ridimensionamento. Non so quello che sto facendo male.
L'immagine che sto utilizzando è 200px di larghezza e 200px di altezza. I valori viewport ho lì sono stati indovinato, ma non funzionava prima di me che.
Grazie per qualsiasi aiuto
Modifica : Corretto una contraddizione in questione
Soluzione
trovato il problema. L'immagine era un png che è stato progettato per una risoluzione di 72 dpi. Pertanto WPF è stato scalando in modo che corrisponda la risoluzione standard di 96 dpi. Il problema non era con il codice.
Altri suggerimenti
Se si conosce la risoluzione dell'immagine sorgente, è possibile impostare i valori Viewbox e viewport come pixel. Impostare ViewBoxUnits e ViewPortUnits per assoluta e si dovrebbe essere in grado di ottenere l'effetto desiderato.
<ImageBrush ViewBox="0,0,200,200"
ViewBoxUnits="Absolute"
ViewPort="0,0,200,200"
ViewPortUnits="Absolute" />