我遇到了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
是起始坐标,width
和height
值是我需要的提取的大小。
我希望任何人都可以帮助我如何防止控制模糊!
由于 丹尼尔
答案 0 :(得分:1)
好的,我发现了问题。 Host.Viewer
包含一个包含图像对象的画布。在.NET 4.0及更高版本中,图像可能看起来模糊。问题可能解决为UseLayoutRounding = true;
和Rootparent-object设置BitmapScalingMode = BitmapScalingMode.NearestNeighbor;
和Canvas
。