views:

225

answers:

2

Hello, I have a Item called MiniMap in my xaml. I have set the background of it to a visual brush representting a canvas Item. Now, I want to scale the background to a ratio 0.7 . How can I do it? Thanks in advance

<local:MiniMap Width="201" Height="134" x:Name="MiniMapItem" MinHeight="100" MinWidth="100" Opacity="1" SnapsToDevicePixels="True" Margin="0,0,20,20" VerticalAlignment="Bottom" HorizontalAlignment="Right">
                    <local:MiniMap.Background>
                        <VisualBrush Visual="{Binding ElementName=viewport}" Stretch="None" TileMode="None" AlignmentX="Left" AlignmentY="Top" />
                    </local:MiniMap.Background>
                </local:MiniMap>
A: 

Try this:

<VisualBrush Visual="{Binding ElementName=viewport}" Stretch="None" TileMode="None" AlignmentX="Left" AlignmentY="Top">
   <VisualBrush.Transform>
      <ScaleTransform ScaleX="0.7" ScaleY="0.7" />
   </VisualBrush.Transform>
</VisualBrush>

You may need to play with the CenterX and CenterY properties to get it to look right. Usually you'll want them to be set to the middle point of what you're scaling.

Mike Pateras
+1  A: 

The VisualBrush element has the property Viewbox, which can be used to scale the background.

Maurizio Reginelli