Domanda

Sto scrivendo una finestra piccola di accesso, e hanno incorporato un banner nella parte superiore della finestra di dialogo per motivi estetici. Tutto è andato bene, tranne che per default, WPF alias anti-tutta l'immagine, rendendo il testo che è stato contenuto all'interno frustrante sfocata.

Dopo un po 'di ricerca, le prime pagine dei risultati hanno mostrato che è comune convinzione che l'anti aliasing non può essere disabilitare in WPF. Può una conferma, o comunque negare questa?

E 'un problema minore per me - mi prendo il testo fuori l'immagine e invece sovrappongo un'etichetta con lo stesso testo sopra l'immagine di sfondo per ottenere lo stesso effetto (anche se devo ammettere, è un po' fastidioso ).

Grazie, Rob

È stato utile?

Soluzione

Per quanto ne so, WPF fa sempre anti-aliasing durante il ridimensionamento di una bitmap. Tuttavia si dovrebbe essere in grado di raggiungere il tuo obiettivo, evitando la scala bitmap.

Ci sono due fasi:

  1. Imposta SnapsToDevicePixels="true" sulla vostra immagine
  2. Imposta uno ScaleTransform sulla tua immagine in scala in modo che un pixel device = un pixel bitmap

Per calcolare lo ScaleTransform necessario, calcolare il DPI della vostra schermata come questa:

var DPI = Win32Functions.GetSystemMetrics(SM_CYICON) / SystemParameters.IconHeight * 96;

e poi per la bitmap, fare:

var scale = bitmapDPI / DPI;
var transform = new ScaleTransform(scale, scale);

Questo farà sì pixel del bitmap corrispondono esattamente con i pixel del dispositivo. WPF non allungare il bitmap, quindi non ci dovrebbe essere l'anti-aliasing.

Se si vuole allungare la vostra immagine su schermi ad alta DPI ma farlo senza anti-aliasing (ad es doppie tutti i pixel), basta allungare la bitmap nel proprio codice utilizzando qualsiasi algoritmo che ti piace e utilizzare il precedente con il bitmap allungata .

Altri suggerimenti

Non è proprio anti-aliasing - è il posizionamento dei subpixel che la causa del problema, ho scritto su di esso (e circa un controllo che risolve il problema) sul mio blog all'indirizzo:

http: // www .nbdtech.com / blog / archive / 2008/11/20 / sfocate-immagini-in-wpf.aspx

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top