2012-07-05 64 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形状逃脱吗?