VisualBrush使Visual模糊

时间:2014-09-21 12:31:12

标签: c#-4.0 wpf-controls visualbrush

我遇到了WPF VisualBrush的问题。 Here您从我的应用程序中找到了两张图片。更大的是一个显示文本控件的图像。较小的一个是从第一个使用可视刷子制作它的人的提取物。我的问题是,当我的视觉分辨率(VisualBrush的内容)变小时,视觉画笔看起来更模糊。我不知道为什么。我使用以下代码声明可视化画笔。

 var blendBrush = new VisualBrush
        {
            Visual = Host.Viewer,
            TileMode = TileMode.None,
            AlignmentX = AlignmentX.Left,
            AlignmentY = AlignmentY.Top,
            Stretch = Stretch.None,
            ViewboxUnits = BrushMappingMode.Absolute,
        };

Host.Viewer是您在大图片上看到的控件。每次更改控件大小时,我都会使用以下例程更新ViewBox值:

var viewBox = new System.Windows.Rect(topLeft, new Size(width, height));
        visualBrush.Viewbox = viewBox;

topLeft是起始坐标,widthheight值是我需要的提取的大小。 我希望任何人都可以帮助我如何防止控制模糊!

由于 丹尼尔

1 个答案:

答案 0 :(得分:1)

好的,我发现了问题。 Host.Viewer包含一个包含图像对象的画布。在.NET 4.0及更高版本中,图像可能看起来模糊。问题可能解决为UseLayoutRounding = true;和Rootparent-object设置BitmapScalingMode = BitmapScalingMode.NearestNeighbor;Canvas