Pregunta

Tengo un problema con ImageBrush:

<Window ... >
    <Grid>
        <Grid.Background>
            <ImageBrush ImageSource="Controls\Images\notebook_paper_Line.jpg" TileMode="FlipX"
                        Viewport="0,0,1,0.09" />
        </Grid.Background>        
    </Grid>
</Window>

Quiero repetir imagen, mientras que el redimensionamiento de usuario. Pero en la actualidad la imagen se escala mientras que el usuario cambiar el tamaño de la ventana. (Tenga en cuenta que el tamaño de imagen es pequeño y lo uso TileMode y Viewport a repetirla, y el problema se produce al cambiar el tamaño ella!).

Cualquier código XAML será grande! :)

y me siento por mala Inglés !!!

¿Fue útil?

Solución

Por defecto, la ventana gráfica para un TileBrush es 0,0,1,1 y los ViewportUnits son RelativeToBoundingBox, lo que significa que 0,0,1,1 mapas a todo el tamaño de destino (en este caso, los límites de la cuadrícula ).

Así que si quieres un azulejo ImageBrush, tendrá que ajustar la ventana gráfica. Si se va a establecer la ventana gráfica a 0,0, 0,5, 0,5, debería ver las imágenes en mosaico de 2 x 2 (ya que cada baldosa será del 50% X50% del tamaño de la cuadrícula), o 0,0,0.25, 0,1 produciría un mosaico 4x10, etc ...

Sin embargo, que todavía no impide que la imagen de cambio de escala. Así, en su caso, lo que es probable que desee es fijar la ventana con el tamaño de la imagen, y establecer los ViewportUnits a absoluta en lugar de RelativeToBoundingBox.

En el xaml continuación he una imagen de 24x24 píxeles, así que fijo mi vista en consecuencia. Este azulejos la imagen en varias ocasiones para el tamaño completo de la red. Si se cambia el tamaño de la red, aparecerán más fichas.

<ImageBrush ImageSource="Images\book_green.png" TileMode="FlipX" 
            Viewport="0,0,24,24" ViewportUnits="Absolute" />

Espero que ayude.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top