#1,017 – Scaling Items in a List Using a Slider
February 26, 2014 1 Comment
Below is an example of using a Slider control to scale a bunch of images in an ItemsControl. The images are displayed within a WrapPanel. As they are resized, the WrapPanel automatically updates the layout, so that the number of rows needed to display the images changes.
<Grid> <Grid.RowDefinitions> <RowDefinition/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <ScrollViewer> <ItemsControl ItemsSource="{Binding ActorList}" Margin="20"> <ItemsControl.ItemTemplate> <DataTemplate> <Image Source="{Binding Image}" Height="100"> <Image.LayoutTransform> <ScaleTransform ScaleX="{Binding Value, ElementName=sliScale}" ScaleY="{Binding Value, ElementName=sliScale}"/> </Image.LayoutTransform> </Image> </DataTemplate> </ItemsControl.ItemTemplate> <ItemsControl.ItemsPanel> <ItemsPanelTemplate> <WrapPanel/> </ItemsPanelTemplate> </ItemsControl.ItemsPanel> </ItemsControl> </ScrollViewer> <Slider Name="sliScale" Grid.Row="1" Margin="10,5" Minimum="0.1" Maximum="3" Value="1.0"/> </Grid>