Hallo.
Ich hatte eigentlich nicht vor wegen der Sache was zu fragen, aber hab das Gefühl, ich verfolge den falschen Weg.
Wie der Name schon sagt, möchte ich mittels einer Sliderbewegung die Bilder in einem Canvas ändern.
Meine Denkweise sah so aus:
<Slider x:Name="mySlider" HorizontalAlignment="Left" Height="58" Margin="209,948,0,0" VerticalAlignment="Top" Width="407" Minimum="0" Maximum="15"
TickFrequency="1" TickPlacement="TopLeft" IsSnapToTickEnabled="True" ValueChanged="sliderChangeValue"/>
An diesen Slider ist ein ChangeValue-Event angehängt, dass eine BitmapImage Property ändert.
Jetzt habe ich noch ein ItemsControl mit einem Canvas darin, in dem die Bilder dargestellt werden sollen.
<ItemsControl x:Name="canvas2" Margin="209,678,1012,124.8" Background="#FFC4C4C4" ItemsSource="{Binding LoadFieldMapsFIELDcol}">
<Canvas>
<Canvas.Background>
<ImageBrush ImageSource="{Binding BitIm, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
</Canvas.Background>
</Canvas>
</ItemsControl>
Wischiwaschi ChangeVlaue Event zum testen ( hat auch nix mit MVVM zu tun, ist im MainWindow. Wichtig ist nur die letzte Zeile)
public void sliderChangeValue(object sender, RoutedPropertyChangedEventArgs<double> e)
{
Collections col = new Collections();
ObservableCollection<BitmapImage> images = new ObservableCollection<BitmapImage>();
Mittelebene mit = new Mittelebene();
images = col.LoadFieldMap();
BitmapImage bild = new BitmapImage();
mit.BitIm = images[0];
}
Meine Idee war, der Slider setzt die BitmapImage BitIM Property beim sliden auf das erste Bild aus einer Imageliste ( zu Testzwecken ). Das Canvas merkt dass die ImageSource geändert wurde und setzt das Bild, dass ich der Property vom Slider aus zugewiesen habe. Aber es tut sich nix.....
Ich hatte auch versucht mit dem Elementnamen Verweise zu erstellen. Rein vom optischen sah es schlüssig aus :) Aber ätsch..
In meinen Augen ist an der obigen Verkettung nix falsches.
Ich hatte natürlich intensiv gegoogelt. Die meisten hatten für solche Späßchen Listboxen genommen und Grids. Aber das muss doch mit einem Canvas auch klappen.
Ich verstehe auch nicht, warum ich im Code behind eines Canvas über die Background Eigenschaft nur die Farbe ändern kann über ein SolidColorBrush.
Mache ich
<Canvas>
<Canvas.Background>
<ImageBrush ImageSource="{Binding BitIm, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
</Canvas.Background>
</Canvas>
will er dann auf einmal ein BitmapImage haben. Ich kann zwar ein Bild auch umwandeln, aber dann wird nix angezeigt. Nur ein BitmapImage wird angezeigt. Esseidenn ich nutze diese URI Sache.
Aber aktuell ist mir nur wichtig, warum die oben genannten Codezeilen nicht das tun, was sie sollen.