C# WPF -> ContentPage Objekt anzeigen

16-Bit

Lt. Commander
Registriert
März 2010
Beiträge
1.230
Hi!
Ich versuche schon seit längerem, ein ContentPage - Objekt, welches ich in einem Plugin nachlade, in meiner WPF App sichtbar zu machen:

Code:
ContentPage view = HostApp();
Window startupWindow = new Window();

startupWindow.Content = view;
startupWindow.Show();

Aber ich bekomme immer nur ein Fenster mit weißem Inhalt. Ich bin WPF Neuling, deswegen hab ich vielleicht einen Knoten im Kopf. ContentPage ist ein Typ aus dem Xamarin.Forms Namespace, dessen Ursprung eine XAML Seite ist.

Weiß jemand, was ich falsch mache?

Danke!
 
Warscheinlich ist das Problem, dass ContentPage aus dem Xamarin.Forms Namespace nicht mit der WPF Klasse Window kompatibel ist.

Das Content Property des Window ist zwar vom Typ Object, du kannst also alles setzen, allerdings muss die Klasse entweder von UIElement ableiten oder du brauchst ein DataTemplate:

https://msdn.microsoft.com/de-de/li...ontrols.contentcontrol.content(v=vs.110).aspx

Die Lösung würde darin bestehen, anstatt der WPF Klasse Window das Xamarin Equivalent zu verwenden.
 
umask007 schrieb:
Die Lösung würde darin bestehen, anstatt der WPF Klasse Window das Xamarin Equivalent zu verwenden.

Ok vielen Dank! Ich bräuchte aber noch etwas Hilfe...
Ich hab jetzt die Basisklasse so aufgebaut:

Code:
using PluginDefinition;
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Windows;
using Xamarin.Forms;

namespace HostApplicationWindows
{
    /// <summary>
    /// Interaktionslogik für "App.xaml"
    /// </summary>
    public partial class App : Xamarin.Forms.Application
    {
        private void Application_Startup(object sender, StartupEventArgs e)
        {
            ContentPage view;
            view = MeinGeladenesContentPageObjekt;
            Window startupWindow = new Window();


            startupWindow.Content = view;
            startupWindow.Show();     
        }
    }
 }

Und der XML Code sieht so aus:

Code:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:local="HostApplicationWindows.App"
             Startup="Application_Startup">
</ContentPage>

Aber jetzt meckert er:

  1. Der Name "ContentPage" ist im Namespace "http://xamarin.com/schemas/2014/forms" nicht vorhanden.
  2. CS0263 Partielle Deklarationen von "App" dürfen keine unterschiedlichen Basisklassen angeben.


Irgendwie läufts noch nicht. Hast du noch eine Idee? Ich bin momentan mit der Symbiose von Xamarin und WPF überfordert... :rolleyes:
 
Du hast deinem XAML keine Klassendefinition gegeben:
Code:
xmlns:local="clr-namespace:HostApplicationWindows"
x:Class="HostApplicationWindows.App"

Auf den Namespaceraum xmlns:local kannst du eigentlich auch verzichten, wenn du ihn nicht nutzt.
Mit der ContentPage kann ich dir aber nicht helfen, ich nutze Xamarin nur mit Android und nicht mit WPF.
 
Zurück
Oben