Hi,
> Hallo,
>
> ist es in der Programmierung mit WPF zwingend notwendig die Oberflaeche
> in XAML zu gestalten?
> Ein JA oder NEIN reicht mir.
Nein, muss man nicht zwingend. Allerdings möchte man im Regelfall ja
auch schon vorher sehen, was man da designt hat. Und weiterhin ergeben
sich durch die XAML-bedingten Verschachtelungen nicht gerade lesbarer
und ansprechender Code. WPF möchte ja gerade das Design von der
Programmlogik trennen, evtl. auch mit dem Hintergedanken, dass die
Bearbeiter unterschiedliche Personen sind mit jeweils speziellen
Fähigkeiten.
> Mir geht es um den untenstehenden Code. (copy-past)
> Er sollte mir ein Bild anzeigen.
> Das Fenster bleibt jedoch leer.
> Was ist falsch?
>
[...]
> namespace WpfImage_laden3
> {
> /// <summary>
> /// Interaktionslogik für Window1.xaml
> /// </summary>
> public partial class Window1 : Window
> {
> public Window1()
> {
> InitializeComponent();
>
> Image myImage = new Image();
> myImage.Width = 512;
>
> BitmapImage bitmap = new BitmapImage();
>
> bitmap.BeginInit();
>
> bitmap.UriSource = new
> Uri(@"C:\PIC_0001.png",UriKind.Absolute);
> bitmap.DecodePixelWidth = 200;
>
> bitmap.EndInit();
> myImage.Stretch = Stretch.Fill;
> myImage.Source = bitmap;
> }
> }
> }
WPF kann mit diesen Zeilen noch nichts anfangen, da es ja gar nicht
weiß, WO es das Image darstellen soll (in welchem Container). Entferne
einfach mal das Grid (welches standardmäßig immer auf dem WPF-Fenster
liegt) und füge am Ende des CTORS folgende Zeile hinzu:
AddChild(myImage);
Natürlich kannst Du Dein Image auch in jedes andere ContentControl
reinhängen, welches sich auf Deiner Oberfläche befindet. Hast Du wieder
ein Grid auf dem Fenster und dem Teil einen Namen gegeben (z.B.
"Grid1"), dann kannst Du den Content des Grids mit
Grid1.Children.Add(myImage);
festlegen.
Gruß, Oliver