Benutzer mit den meisten Antworten
Nach dem Wechsel der Imagesource funktioniert die Tranform nicht mehr

Frage
-
Hallo zusammen,
ich bin dabei mir ein kleines Programm zu schreiben, um mir Bilder anzusehen.
Bisher habe ich folgenden Code :
1. WPF Fenster:
<Border Name="Border8" Style="{StaticResource StyleBorder}" Canvas.Top="735" Canvas.Left="200" Panel.ZIndex="7"> <Border.Background> <ImageBrush Stretch="Uniform" ImageSource="T:/104.jpg"> <ImageBrush.RelativeTransform> <ScaleTransform ScaleX="{Binding Path=Value, ElementName=SliderScale}" ScaleY="{Binding Path=Value, ElementName=SliderScale}" CenterX="{Binding Path=Value, ElementName=SliderX}" CenterY="{Binding Path=Value, ElementName=SliderY}" /> </ImageBrush.RelativeTransform> </ImageBrush> </Border.Background> </Border> <Grid Name="GridSlider" Panel.ZIndex="1000" Background="Transparent"> <Grid.ColumnDefinitions> <ColumnDefinition Width="22" /> <ColumnDefinition Width="1*" /> <ColumnDefinition Width="1*" /> <ColumnDefinition Width="22" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="22" /> <RowDefinition Height="1*" /> <RowDefinition Height="1*" /> <RowDefinition Height="50" /> </Grid.RowDefinitions> <Grid.Triggers> <EventTrigger RoutedEvent="Grid.MouseMove"> <EventTrigger.Actions> <BeginStoryboard> <Storyboard> <DoubleAnimation To="1" Storyboard.TargetName="SliderScale" Storyboard.TargetProperty="Opacity"<br/> Duration="0:0:0:0.250" BeginTime="0:0:0:0" /> <DoubleAnimation To="1" Storyboard.TargetName="SliderX" Storyboard.TargetProperty="Opacity"<br/> Duration="0:0:0:0.250" BeginTime="0:0:0:0" /> <DoubleAnimation To="1" Storyboard.TargetName="SliderY" Storyboard.TargetProperty="Opacity"<br/> Duration="0:0:0:0.250" BeginTime="0:0:0:0" /> </Storyboard> </BeginStoryboard> </EventTrigger.Actions> </EventTrigger> <EventTrigger RoutedEvent="Grid.MouseLeave"> <EventTrigger.Actions> <BeginStoryboard> <Storyboard> <DoubleAnimation To="0" Storyboard.TargetName="SliderScale" Storyboard.TargetProperty="Opacity"<br/> Duration="0:0:0:0.250" BeginTime="0:0:0:0" /> <DoubleAnimation To="0" Storyboard.TargetName="SliderX" Storyboard.TargetProperty="Opacity"<br/> Duration="0:0:0:0.250" BeginTime="0:0:0:0" /> <DoubleAnimation To="0" Storyboard.TargetName="SliderY" Storyboard.TargetProperty="Opacity"<br/> Duration="0:0:0:0.250" BeginTime="0:0:0:0" /> </Storyboard> </BeginStoryboard> </EventTrigger.Actions> </EventTrigger> </Grid.Triggers> <!-- Schieberegler zur Vergrößerung und Positionierung --> <Slider Grid.Column="2" Grid.Row="3" Name="SliderScale" Width="Auto" Minimum="1" Maximum="10"<br/> ToolTip="{Binding ElementName=SliderScale, Path=Value}" Orientation="Horizontal" HorizontalAlignment="Stretch" TickFrequency="1" /> <Slider Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="2" Height="20" Name="SliderX" Width="Auto" Minimum="0" Maximum="1"<br/> Orientation="Horizontal" IsDirectionReversed="False" Value="0.5" /> <Slider Grid.Column="0" Grid.Row="1" Grid.RowSpan="2" Height="Auto" Name="SliderY" Width="20" Minimum="0" Maximum="1"<br/> Orientation="Vertical" IsDirectionReversed="True" Value="0.5" /> </Grid>
Soweit so gut. Mit den Slidern kann ich das Bild zoomen und verschieben. Funktioniert prima. Den Border habe ich gewählt, weil ein Rand um das Bild sehr nett ist.Nun möchte ich aber das Bild per C# Code ändern:
private void Window_Loaded(object sender, RoutedEventArgs e) { ImageBrush ib = new ImageBrush(); ib.ImageSource = new BitmapImage( new Uri("t:/104.jpg", UriKind.Absolute) ); Border8.Background = ib; }
Wenn ich aber nun die Slider bewege, tut sich nix (kein Zoom oder verschieben)Ich kenne mich mit C# und WPF nicht gut aus, und bin viel am rumprobieren. War schon total stolz als ich das mit den Slidern hinbekommen hatte, aber nun weiß ich nicht weiter.
Hat jemand einen Lösungsansatz, oder bin ich total falsch drauf.