Beim Edward habe ich ein nettes Snippet gesehen, wie einfach man mit einem Slider ein Steuerlement direkt im Xaml, skalieren und/oder drehen kann. Dazu einfach dem Slider ein ElementNamen geben und die entsprechenden Minimum und Maximum-Werte angeben. Das jeweilige Steuerelement lässt sich dann durch ein Binding jeweils transformieren.

wpftransform

Hier zwei implementierte Beispiele (rotate, scale):


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="2*" />
        <RowDefinition Height="1*"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition />
    </Grid.ColumnDefinitions>
 
    <Image Name="myImage" Source="images/rss.jpg" RenderTransformOrigin="0.5,0.5">
        <Image.RenderTransform>
            <TransformGroup>
                <ScaleTransform 
                    ScaleX="{Binding ElementName=Scale, Path=Value}"
                    ScaleY="{Binding ElementName=Scale, Path=Value}" />
                <RotateTransform Angle="{Binding ElementName=Rotate, Path=Value}" />
            </TransformGroup>
        </Image.RenderTransform>
     </Image>
 
    <StackPanel Grid.Row="1" VerticalAlignment="Bottom" Orientation="Horizontal">
        <Label VerticalAlignment="Center">Scale</Label>
        <Slider x:Name="Scale" 
           Width="100"
           Minimum="0.5"
           Maximum="10"
           HorizontalAlignment="Center"
           Margin="0" />
         <Label VerticalAlignment="Center">Rotate</Label>
        <Slider x:Name="Rotate" 
           Width="100"
           Minimum="0"
           Maximum="360"
           HorizontalAlignment="Center"
           Margin="0" />
    </StackPanel>
</Grid>

RenderTransform lässt sich nahezu auf alle SteuerElemente anwenden, wie in dem ScreenShot hier, mit einer TextBox.

wpftransform2

SteuerElemente mit Slider transformieren
Markiert in: