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.
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.









