Aug 172012
 

Hier mal zwei Beispiele wie man mittels eigenen Behavior den Fensterinhalt einer WPF Anwendung per Strg+Mausrad zoomen kann. Die beiden Behaviors lassen sich per Expression Blend mit der Maus auf die entsprechenden Controls ziehen oder mit ein paar Zeilen Xaml Code einbinden:

ZoomWindowBehavior:

<Window
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" 
        xmlns:behaviors="clr-namespace:ZoomBehaviors;assembly=ZoomBehaviors"
        x:Class="ZoomTestClient.MainWindow"
        Title="MainWindow" Height="350" Width="525">
    <i:Interaction.Behaviors>
        <behaviors:ZoomWindowBehavior/>
    </i:Interaction.Behaviors>
    ...

ZoomUIElementBehavior:

<Image Source="world.png" VerticalAlignment="Center" HorizontalAlignment="Center" Width="64" Height="64">

<i:Interaction.Behaviors> <behaviors:ZoomUIElementBehavior MaximumScale="4" MinimumScale="0.5"/> </i:Interaction.Behaviors> </Image>

Zusätzlich kann man noch einen MaximumScale und MinimumScale angeben: MinimumScale=”0.5” und MaximumScale=”4” bedeutet dann also einen Zoom von 50%-400%. Genutzt wird dabei das LayoutTransform der Controls. Weiterhin wird noch die System.Windows.Interactivity.dll und die Microsoft.Expression.Interactions.dll aus dem Expression Blend SDK verwendet.

Das komplette Beispiel inkl. der beiden Behaviors gibt es hier: Download

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)