Ich kriege noch mehr graue Haare als ich schon habe :-) Folgendes Problem:
Ich habe in Blend4 ein Template für einen Button UserControl erstellt. Aus dem Template (LayoutRoot, 4x rectangle, 1 x image, 1 x contentPresenter) habe ich einen Button generiert.
Im Usercontrol.cs habe ich ein DependencyProperty erstellt:
public BitmapSource ImageSource { get { return (BitmapSource)GetValue(ImageSourceProperty); } set { SetValue(ImageSourceProperty, value); MessageBox.Show("Neues Value"); } }
public static readonly DependencyProperty ImageSourceProperty = DependencyProperty.Register( "ImageSource", typeof(BitmapSource), typeof(MainControl), new FrameworkPropertyMetadata(OnImageChanged));
private static void OnImageChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs e) { dependencyObject.SetValue(Image.SourceProperty, e.NewValue); // Test if works MessageBox.Show( e.NewValue.GetType().ToString()); MessageBox.Show( e.NewValue.ToString()); MessageBox.Show( dependencyObject.GetType().ToString()); }
So nun will ich das Image des Buttons (das wiederrum in einen UserControl liegt) in meinen Net-Testprojekt dynamisch ersetzen, aber ich krieg das nicht gebacken!
var uriSource = new Uri(@"./Images/Datatransfer_48.png", UriKind.Relative);
// New Image in the UserControl // Das geht nicht und ich weiß nicht warum var bim = new BitmapImage(uriSource); verbindungsDaten1.mainControl1.ImageSource = bim;
Wäre echt toll, wenn jemand helfen könnte. Viele Grüße
hi reinhard, ich wäre froh, wenn mir nur die haare grau würden: ich bin kein wpf spezialist, und wollte mir den code ansehen (übrigens hübscher button), aber ich krieg es nicht kompilierbar: bei MainControl regt er sich auf ....
Also, ich habs zum Laufen gebracht, und es funktioniert. Allerdings ist das Bild winzig klein. Hilft dir das?
Ich hab natürlich weiter rumgespielt, und jetzt das Bild etwas größer gemacht (aber natürlich auch den button), habe dazu bei mir nur eine Kleinigkeit geändert:
vielen Dank für Deine Antwort, aber hilft mir leider nix, weil mein Testprojekt viel komplexer ist. Wenn du willt können wir das gemeinsam per Fernwartung lösen. Wenn wir eine Lösung gefunden haben, können wir diese ja gern posten. Tel.Nr. findest Du auf meiner Homepage WaWi1.de
das wird wohl eher nicht gehen (zeitproblem, muss noch nebenbei was machen *g*).
Was ich aber gesehen habe - und dir nochmal bestätige - dein xaml/cs code stück funktioniert! Die Bilder sind halt wirklich sehr klein, also gibt es ohnehin nur zwei Möglichkeiten: kleine Bilder sind ok oder aber der Button muss größer werden.