2012-07-05 63 views
0

我必須編寫WPF中設置像素的函數。我需要畫一些照片。使用附加的代碼我有一些模糊的效果(如在屏幕上)。C#WPF模糊像素

你能告訴我什麼是錯的,或者我應該使用哪些方法?

namespace DisplayAppCS { 

public partial class MainWindow : Window 
{ 

    WriteableBitmap _bitmap = new WriteableBitmap(100, 200, 1, 1, PixelFormats.Bgr32, null); 

    public MainWindow() 
    { 
     InitializeComponent(); 
     image1.SnapsToDevicePixels = true; 
     image1.Source = _bitmap; 

     int[] ColorData = { 0xFFFFFF }; // B G R 

     Int32Rect rect = new Int32Rect(
       1, 
       60, 
       1, 
       1); 

     _bitmap.WritePixels(rect, ColorData, 4, 0); 

    } 
}} 

pixel blurry effect

+0

我以爲我讀過的地方,當使用'SnapsToDevicePixels'和'UseLayoutRounding',所有的父元素必須設置它相同。不記得在哪裏。 – Silvermind 2012-07-05 12:44:43

回答

4

您的位圖是100x200,但您的窗口要大得多。您的圖像被拉伸至窗口大小,從而產生「模糊」效果。您需要更改窗口大小或告訴圖像不拉伸:

<Image Stretch="None"/> 

這就是說,你可以下去完全使用可寫位錯誤的道路。這真的取決於你的要求。例如,您可以使用內置的WPF形狀逃脫嗎?