问题
如何在不应用抗锯齿的情况下快速缩放XAML中的图像?
背景
我正在尝试将像素编辑器设置为Windows 8 XAML / C#应用程序。我正在使用c#/ XAML,因为我的大多数经验都是使用c#/ WPF。
方法1: WriteableBitmap +图像控件。
最初,我使用WriteableBitmap来存储和编辑图像。该图像显示在调整大小的XAML图像控件中。问题是由于抗锯齿,图像无法正确缩放。 (XAML似乎没有提供WPF中可用的BitmapScalingOptions)
方法2:重绘WriteableBitmap +图像控件。
接下来我尝试编写自己的缩放,在这里我拍摄原始图像并写入更大的WriteableBitmap,以便缩放图像像素化。然后将缩放的图像呈现在XAML图像控件内。这个过程缓慢而且效率低下。
方法3: SharpDX + Direct2d ??
我很确定SharpDx,SurfaceImageSource和Direct2d之间存在解决方案。事件仍然,我无法弄清楚如何在Windows.UI.Xaml图像控件中显示SharpDx.WIC.Bitmap,并且通常会在文档中丢失。
推荐的设置到底达到了什么目的?是否有可用的c#样本可能指向正确的方向?
答案 0 :(得分:0)
我不知道你的意思是通过用鼠标调整大小来缩放它,或者只需点击一下按钮来自动缩放到预定的大小。
但你可以做的是使用一个图像面板,然后将其设置为image.Stretch = Stretch.Fill;
,这样如果你覆盖并为图像面板的Resize事件创建一个方法,你的图像将采用这个尺寸填写图像面板。