Frage

Als Follow-up href="https://stackoverflow.com/questions/104224/how-do-you-troubleshoot-wpf-ui-problems"> meine vorherige Frage

Wenn ich die transparenten Grenzen zu entfernen, tritt das Verhalten nicht auftreten. Bin ich etwas falsch zu machen oder gibt es eine andere Einstellung, Code, etc ..., dass ich implementieren müssen, um richtig mit transparenten Grenzen zu arbeiten?

Hier ist mein Fenster Erklärung für den Code, der fehlschlägt.

<Window x:Class="MyProject.MainContainer"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="WPF APplication" Height="600" Width="800"    
    xmlns:egc="ControlLibrary" Background="{x:Null}"
    BorderThickness="0"
    AllowsTransparency="True"
    MinHeight="300" MinWidth="400" WindowStyle="None" >

Und der Code, der das Verhalten nicht zeigen

<Window x:Class="MyProject.MainContainer"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="WPF Application" Height="600" Width="800"    
    xmlns:egc="ControlLibrary" Background="{x:Null}"
    BorderThickness="0"
    AllowsTransparency="False"
    MinHeight="300" MinWidth="400" WindowStyle="None" >
War es hilfreich?

Lösung 2

Ich denke, dass ich endlich eine Abhilfe gefunden habe. Von allem, was habe ich dieses Problem nicht 3.5 SP1 gelesen wird vorkommendes mit XP SP3 & .NET, aber es ist.

Das Beispiel von dieser Blog-Post zeigt, wie die Win32-API-Funktionen verwenden, um ein unregelmäßig geformten Fenster zu schaffen, das ist, was ich "m zu tun. nach meinem Hauptfenster Nachbearbeiten diese Techniken zu verwenden, scheint die Dinge zu arbeiten, wie erwartet und das Verhalten ist nicht zurückgekehrt .

Es ist auch bemerkenswert, dass der Grund, warum der Autor diese Methode empfiehlt Performance-Probleme mit WPF und transparenten Fenstern zurückzuführen ist. Während ich es glauben in .NET 3.5 SP1 besser sein kann, dass es war, war dies nicht so schwer zu implementieren und sollte besser.

Andere Tipps

Sind Sie mit .NET 3.0 oder .NET 3.5 auf Windows XP SP2? Wenn ja, ist dies ein bekanntes Problem mit dem transparenten Fenster-API, die .NET 3.5 und SP3 von XP fixiert wurde (und ich denke, SP1 von Vista). Grundsätzlich, wenn Sie die AllowsTransparency auf True gesetzt, hat die WPF-Pipeline in der Software-Only-Modus zu machen. Dadurch wird eine erhebliche Verschlechterung der Leistung auf den meisten Systemen verursachen.

Leider ist das einzige, was Sie tun können, um dies zu beheben ist zu .NET 3.0 SP1 (.NET 3.5 enthalten in) zu aktualisieren, und das entsprechende Service Pack für Windows installieren. Beachten Sie, dass die transparenten Fenster sind noch langsamer, aber nicht annähernd so schlimm. Sie können eine tiefer gehende Diskussion hier .

ich auf Windows XP Pro SP3 leite und .NET 3.5 SP1 verwenden. Ich habe auch festgestellt, dass die Projektversion Targeting 3.5 des Frameworks.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top