2009-10-01 7 views
6

En mi proyecto, quiero mostrar un pequeño logotipo en el costado de un control personalizado. Como no tengo lienzo, pensé que tal vez un Visual Brush sería una buena idea para colocar el logotipo en segundo plano.WPF: ¡Ayuda! Visual Brush estira todo el contenido

<VisualBrush> 
    <VisualBrush.Visual> 
     <Rectangle Width="200" Height="200" Fill="Red" /> 
    </VisualBrush.Visual>     
</VisualBrush> 

Pero el rectángulo que estoy usando en este momento no es 200x200. Toma el espacio completo disponible. Eso no es lo que quiero También probé Viewbox y establecí la propiedad stretch, pero el resultado es el mismo porque al final no necesito un Rectangle simple sino un lienzo con muchos objetos path como secundarios. Un Viewbox solo admite un niño.

¿Hay alguna forma de evitar este problema?

Respuesta

10

Es necesario establecer TileMode, Stretch, AlignmentX y AlignmentY propiedades en su VisualBrush:

<VisualBrush TileMode="None" Stretch="None" AlignmentX="Left" AlignmentY="Top"> 
    <VisualBrush.Visual> 
     <Rectangle Height="200" Width="200" Fill="Red"></Rectangle> 
    </VisualBrush.Visual> 
</VisualBrush> 
+0

Funciona perfectamente. Muchas gracias. – TalkingCode

+0

gracias me faltaba el TileMode = "None" y Stretch = "None" – juFo

0

Añadir cuadrícula y esto alligment Conjunto vertical hacia arriba y la alineación horizontal a la derecha código Muestra

<VisualBrush x:Key="myVisual"> 
     <VisualBrush.Visual> 
      <Grid> 
       <Rectangle Height="200" Width="200" Fill="Red" HorizontalAlignment="Right" VerticalAlignment="Top" ></Rectangle> 
      </Grid> 
     </VisualBrush.Visual> 
    </VisualBrush> 
Cuestiones relacionadas