Web- und Software Development

SteuerElemente mit Slider transformieren

Written By: Mario Priebe - Mai• 17•09

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

Ähnliche Beiträge

You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.