Vra

As 'n opvolg na my vorige vraag , ek wonder hoe om deursigtige vensters korrek te gebruik. As ek my venster om deursigtigheid te gebruik gestel het, sal die UI soms verskyn nie meer te reageer. Wat is eintlik gebeur, is dat die UI eenvoudig nie die opdatering soos dit hoort. Animasies nie plaasvind nie, moenie bladsye verskyn nie om te navigeer; As jy egter die debugger te kliek op knoppies, links, ens kyk .. doen eintlik werk. Minimaliseer en die venster "inhaal" die UI herstel weer en die gebruiker kan voortgaan om te werk totdat die gedrag terug kom.

As ek die deursigtige grense te verwyder, die gedrag nie plaasvind nie. Ek iets verkeerd doen of is daar 'n paar ander instelling, kode, ens ... wat ek nodig het om te implementeer om te werk met deursigtige grense behoorlik?

Hier is my venster verklaring vir die kode wat in gebreke bly.

<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" >

En die kode wat nie die gedrag nie uitstal

<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" >
Was dit nuttig?

Oplossing 2

Ek dink dat ek uiteindelik gevind het 'n tydelike oplossing. Van alles wat ek gelees het hierdie probleem moet nie plaasvind met XP SP3 & NET 3.5 SP1, maar dit is nie.

Die voorbeeld van hierdie blog post wys hoe om die Win32 API funksies te gebruik om 'n onreëlmatige gevormde venster te skep, en dit is wat ek "m doen. na herbewerking my hoof venster na hierdie tegnieke gebruik, dinge lyk om saam te werk as wat verwag is en die gedrag het nie teruggekeer .

Dit is ook van belang dat die rede die skrywer beveel aan hierdie metode is te danke aan prestasie kwessies met WPF en deursigtige vensters. Terwyl ek glo dit kan beter in NET 3.5 SP1 dat dit wees, dit was nie so moeilik om te implementeer en moet beter presteer.

Ander wenke

Het jy NET 3.0, of NET 3.5 op Windows XP SP2? As dit so is, is dit 'n bekende probleem met die deursigtige venster API wat vaste is in NET 3.5 en SP3 van XP (en ek dink SP1 van Vista). Basies wanneer jy die AllowsTransparency gestel is, die WPF pyplyn moet lewer in sagteware net af. Dit sal 'n beduidende agteruitgang in prestasie op die meeste stelsels veroorsaak.

Ongelukkig is die enigste ding wat jy kan doen om dit op te los, is om op te gradeer na NET 3.0 SP1 (ingesluit in NET 3.5), en die installering van die nodige service pack vir Windows. Let daarop dat die deursigtige vensters is nog stadiger, maar nie naastenby so erg nie. Jy kan 'n meer in-diepte bespreking hier .

Ek hardloop op Windows XP Pro SP3 en die gebruik van NET 3.5 SP1. Ek het ook bevestig dat die projek is gerig op weergawe 3.5 van die raamwerk.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top