2016-08-08 19 views
0

Ich habe störende Aussehen Unterschiede zwischen Windows 10 Geräte und Windows 7 Geräte.WPF: Windows 7 vs Windows 10 Aussehen

Ich verwende WindowStyle="None" und DockPanel direkt in meinem Window Element.

Was ich nicht verstehe ist, warum es noch eine Grenze gibt? Warum sind die Grenzen für Schaltflächen, Textfelder, Kombinationsfelder usw. gerundet?

Es scheint, dass dies mit Aero verwandt ist. Gibt es eine Möglichkeit, die Anwendung von Aero zu stoppen? Ich gehe davon aus, dass es ein anderes Präsentationsframework für Windows 10 gibt, aber nicht weiß, wie es aufgerufen wird, um es zu erzwingen.

Wäre ein BorderBrush der einfachste Weg, dies zu lösen?

<Window x:Class="CBD.Presentation.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:local="clr-namespace:CBD.Presentation" 
     Title="CBD" Height="760" Width="944" WindowStartupLocation="CenterScreen" 
     WindowStyle="None" SizeChanged="Window_SizeChanged" MinWidth="944" MinHeight="760" 
     Icon="favicon.ico"> 
    <DockPanel x:Name="Root_Window" Background="Black"> 
     <!--Application stuff here --> 
    </DockPanel> 
</Window> 

Windows 7 Anzeige: Windows 7 Display

Windows-10-Anzeige:

Windows 10 Display

Alles noch richtig funktioniert, aber die Art und Weise einige Textfelder und Tasten-Setup sind, Teile von Buchstaben fehlen.

+1

ich dies einen Blick darauf werfen würde, viele Informationen über randlose Fenster: http://stackoverflow.com/questions/611298/how-to-create-a-wpf-window-without-a-border-that-can-be-resized-via-a-grip-only – Joe

+0

Was die gekrümmten Kanten anbelangt, liegt das vermutlich daran, dass sie je nach Betriebssystem unterschiedliche Themen auswählt. Definieren Sie Stile für diese Komponenten? – Joe

+0

Ich habe immer Mahapps.Metro, mit einer Reihe von Änderungen, für schöne Fenster und konsistente Stile zwischen den Anwendungen verwendet. Oder WPF Material Design in jüngerer Zeit. – Joe

Antwort

1

Ich denke, beides ist etwas, über das viele Leute stolpern werden, wenn sie wirklich anfangen, den Stil ihrer Anwendungen anzupassen. Es gibt einige gut etablierte Verknüpfungen für beide Probleme, wie zum Beispiel in einem der vorhandenen Stil/Bibliotheken für WPF:

Es gibt ein paar gemeinsame Fenster und Stilbibliotheken Ich sehe:

  • MahApps.Metro ist eine große Bibliothek, die ich verwendet habe, für eine lange Zeit, um saubere Fenster und Schnittstellen zu bekommen (besonders bei "dunklen" Themen, die manche Kunden lieben).
  • Modern UI. Wenig persönliche Erfahrung, aber es ist in der Hinsicht ähnlich, dass es modernere Fensterdesigns, sowie ein großes Stilset hat. Ich habe es oft benutzt gesehen.
  • Elysium. Nochmals, nicht viel Erfahrung, aber scheint aktiv. Ich habe es nicht so oft benutzt wie die anderen beiden.

Diese enthalten natürlich eine Menge anderer Metro Theming. Es gibt andere Theme Packs, die ich gefunden habe Material Design In XAML Toolkit groß, wenn ein Kunde die Schneide des modernen Designs will (auch erkennbar, von Google sein).

Es sieht so aus, als würden Sie Ihren Stil von Grund auf neu erstellen, aber das oben Genannte könnte Ihnen immer noch nützlich sein, um es einfach für die Fenster zu verwenden. Wenn Sie selbst daran gehen wollen, gibt es eine lange Diskussion mit vielen Antworten here.

Für die gekrümmten Ecken, wie in den Kommentaren erläutert, ist dies das Standardverhalten von WPF auf verschiedenen Betriebssystemen. Es versucht, einen Standardstil auszuwählen, der sich am besten mit dem aktuellen Betriebssystem einfügt. Für die meisten Anwendungen, die nur das Standardthema verwenden, spielt dies oft keine Rolle.

Wenn Sie jedoch alles selbst gestalten, spielt es eine große Rolle bei dem, was Sie manuell konfiguriert haben, denn einige Eigenschaften, die gut mit dem Thema harmonieren, sind anders - wie die abgerundeten Ecken.

Es gibt zwei Möglichkeiten.

  1. Explizit setzen alle Eigenschaften, so sieht es aus genau, wie Sie es wollen. Dies bedeutet, dass selbst wenn sich das Basisthema ändert, es immer noch gut aussieht. So machen die oben genannten Bibliotheken Dinge - sie definieren einen Stil vollständig. Problem ist, dass Sie es manuell auf den verschiedenen Themen testen müssen, und es ist ein bisschen Arbeit.
  2. Manuelles Festlegen des Basisthemas. (Kann auch in Option 1 zum Testen verwendet werden!) Sie können das von Ihrer App verwendete Design manuell überschreiben, anstatt es als Standard für das Betriebssystem zu verwenden, ähnlich wie andere benutzerdefinierte Designs oder vielleicht Ihr eigenes:
<App.Resources> 
    <ResourceDictionary Source="/PresentationFramework.Aero, Version=3.0.0.0, 
     Culture=neutral, PublicKeyToken=31bf3856ad364e35, 
     ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml"/> 
</App.Resources> 

aus irgendeinem Grund die oben nicht als Code in Anführungszeichen, es sei denn eingeschlossen erscheinen würde ...