我有一个关于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值是我需要的提取大小。我希望任何人能帮助我如何防止控件会变得模糊!
谢谢,丹尼尔
发布于 2014-09-22 21:44:15
好吧,我找到问题所在了。Host.Viewer在很大程度上包含了一个画布,其中包含一个图像对象。在.NET 4.0和更高版本中,图像可能看起来模糊。这个问题可以通过为Canvas和Rootparent-object设置UseLayoutRounding = true;和BitmapScalingMode = BitmapScalingMode.NearestNeighbor;来解决。
https://stackoverflow.com/questions/25959192
复制相似问题