.NET GUI

.NET Community rund um alle Graphical User Interface (GUI) Themen.
Willkommen bei .NET GUI. Anmeldung | Registrieren | Hilfe | Impressum | Forumsregeln
in Suchen

Code-Only Anwendung mit WPF

Letzter Beitrag 04-15-2008 12:36 von Rainer Schuster. 1 Antworten.
Seite 1 von 1 (2 Treffer)
Beiträge sortieren: Zurück Weiter
  • 04-13-2008 21:18

    • Norbert Eder
    • Top 10 Mitwirkender
      Männlich
    • Registriert am 04-09-2008
    • Graz / Austria
    • Beiträge 384
    • Punkte 5.794
    • ForumsAdministrator

    Code-Only Anwendung mit WPF

    Für eine WPF-Anwendung muss nicht immer XAML geschrieben werden, auch ohne XAML kann eine WPF-Anwendung erstellt werden. Warum ist notwendig ist könnte mehrere Gründe haben, der wohl oft vorkommendste: XAML ist nicht bekannt und es fehlt die Einarbeitungszeit. Eine andere Möglichkeit besteht natürlich auch darin, dass zur Laufzeit ein Fenster dynamisch erstellt werden soll.

    Wie ist also vorzugehen: Grundsätzlich kann eine ganz normale WPF-Anwendung erstellt werden. Die Dateien App.xaml und Window1.xaml sind anschließend zu löschen (die Codebehind-Dateien werden automatisch mit gelöscht). Der Vorteil dieser Variante liegt darin, dass die notwendigen Referenzen alle dem Projekt hinzugefügt werden und somit diesbezüglich keinerlei Aufwand entsteht.

    Nun wird im ersten Schritt eine neue Klasse App.cs dem Projekt hinzugefügt. Diese erbt von Application und enthält den notwendigen Einstiegspunkt.

    public class App : Application
    {
        [STAThread]
        static void Main(string[ args) 
        {
            Application app = new Application();
            app.Run(new MainWindow());
        }
    }

    Im Grunde passiert nichts anderes, als dass eine neue Application-Instanz erstellt wird und deren Methode Run aufgerufen wird. Als Parameter erhält sie eine Instanz des Typs MainWindow. MainWindow ist so aktuell noch nicht verfügbar, werden wir jedoch im nächsten Schritt erstellen.

    public class MainWindow : Window
    {
        StackPanel mainPanel = null;
        Label label1 = null;
        Button button1 = null;
    
        private void InitializeComponent()
        {
            mainPanel = new StackPanel();
            mainPanel.Name = "MainPanel";
            mainPanel.Orientation = Orientation.Vertical;
    
            label1 = new Label();
            label1.Content = "Code Only App";
            label1.FontSize = 18;
    
            button1 = new Button();
            button1.Content = "Close";
    
            mainPanel.Children.Add(label1);
            mainPanel.Children.Add(button1);
    
            this.Content = mainPanel;
        }
    
        public MainWindow()
        {
            InitializeComponent();
    
            Init();
    
            button1.Click += new RoutedEventHandler(button1_Click);
        }
    
        void button1_Click(object sender, RoutedEventArgs e)
        {
            Application.Current.Shutdown(0);
        }
    
        private void Init()
        {
            this.Title = "Code Only App";
            this.Height = 300;
            this.Width = 300;
        }
    }

    Die Klasse MainWindow.cs erbt von Window und stellt unser Hauptfenster dar. Wie zu sehen ist, werden nun lediglich durch Code (kein XAML) die einzelnen anzuzeigenden Elemente erstellt. Sämtliche Methoden wurden manuell erstellt, d.h. es gibt hier keinen Code, der irgendwie automatisch erstellt wurde.

    Das Ergebnis kann in der angehängten Grafik "bewundert" werden. Natürlich kann auf diese Variante ebenfalls ein hübsches Design erzeugt werden. Diese Demo sollte jedoch nur grundsätzlich zeigen, wie Code-Only-Applikationen erstellt werden können.

     


    Abgelegt unter: , , ,
    • Beitragspunkte: 20
    • IP-Adresse ist Registriert
  • 04-15-2008 12:36 Antwort zu

    AW: Code-Only Anwendung mit WPF

    Das kann vor allem dann sinnvoll sein, wenn es keine Möglichkeit gibt XAML zu laden. Wer das Micro Framework in der neuesten Version nutzt ist hier auch auf WPF per Code angewiesen. Dazu gab es von Michael Schwarz auf dem letzten DODNED UserGroup Treffen in Franken einen Vortrag. Also falls das mal ein Thema wird, ist Code Only richtig.

    Abgelegt unter: ,
    • Beitragspunkte: 5
    • IP-Adresse ist Registriert
Seite 1 von 1 (2 Treffer)
Powered by Community Server (Commercial Edition)    Hosting powered by 69° media solutions