Ok, die Zeit ist reif für mein erstes WPF-Projekt :). Ich arbeite vorher mit Flex und PureMVC und ich weiß, wie Projekt-Setup in RIA wichtig ist. Ich entschied mich, mit MVVM zu arbeiten. Und entschied sich, mit dem PRISM-Framework zu arbeiten. Anwendung ist etwas wie Betriebssystem. Es wird 'Shell' (Elternteil für kleinere Anwendungen) geben. Kleinere Anwendung Ich plane, wie Module zu machen. So plane ich, Struktur des Projektes so etwas zu entwerfen.Meine erste MVVM Application Architecture Setup
Module_A {Ansicht, Ansichtsmodell, Modell, Vermögenswerte} // zum Beispiel Rechner Module_B {Ansicht, Ansichtsmodell, Modell, Vermögenswerte} // Notebook
etc I Prisma doc lesen und Ich sehe, dass für alle diese Module Shell-Projekt sein sollte, und das ist meine Hauptfrage hier.
Parrent_Project {App.xaml, Bootstrapper.cs, Shell.xaml}
Da diese Schale wird mit Hintergrundbildern (wie Betriebssystem) Vollbild wird direkt mit einigen Funktionen klicken. Ist es ok, eine Ordnerstruktur wie in modulesXYZ for Shell.xaml hier zu erstellen? Ich möchte ein Projekt mit guter Struktur beginnen, daher ist jeder Rat willkommen. Danke
Vielleicht war ich nicht klar. Kann ich Shell verwenden, um ihm einige Funktionen (in MVVM-Manier) hinzuzufügen, z. B. auf Vollbild setzen, immer oben usw. Oder nicht?
Ich möchte Shell in voller Kiosk-Modus sein. Und ich habe mit dem folgenden Code etwas darüber gemacht. Aber wenn ich Alt + Tab, Win-Taste oder andere Taskleiste geht über meine App. Gibt es dafür eine Lösung:
public class Interop
{
[DllImport("user32.dll")]
public static extern bool SetForegroundWindow(IntPtr hWnd);
[DllImport("user32.dll")]
public static extern IntPtr GetForegroundWindow();
public static IntPtr GetWindowHandle(Window window)
{
return new WindowInteropHelper(window).Handle;
}
}
public Shell()
{
InitializeComponent();
IntPtr window = Interop.GetWindowHandle(this);
IntPtr focused = Interop.GetForegroundWindow();
if (window != focused)
{
Interop.SetForegroundWindow(window);
}
}
Ok danke, Sie führen mich zu einem guten Weg. Aber ich habe ein kleines Problem. Ich einige Details in Frage, können Sie bitte überprüfen. – 1110
Es wäre besser, die Art, wie Ihre Anwendung gestartet wird, zu ändern, als zu versuchen, zu verhindern, dass ein Explorer, der immer läuft, jemals angezeigt wird. Um dies zu tun ** Ersetze ** Explorer mit deiner Anwendung als Logon Shell. Dies ist eine einfache Registrierungseinstellung. –
Es tut mir leid, ich google den ganzen Tag, aber ich kann keine nützliche Erklärung finden. Können Sie einen Link oder einen Code für den Startpunkt angeben, um zu verhindern, dass Benutzer die Anwendung durch Drücken der Tasten verlassen? – 1110