1

我正在 WPF 中绘制某些图像,这些图像将由游戏(由第三方开发)显示。我目前使用RenderTargetBitmap. 不幸的是,这似乎只支持Ideal文本格式模式,导致小字体模糊。该应用程序是第三方游戏,因此无法使用图像。

我可以告诉RenderTargetBitmap它假设它正在绘制一个用于当前监视器之一的图像吗?是否有另一种方法可以让 WPF 使用Display渲染模式进行离屏绘图?

我理解为什么这在理论上看起来是错误的,但在实践中我认为这不是一件不合理的事情是有原因的:

  • 该模式允许的一件事Display是别名文本,它在小尺寸下看起来比Ideal渲染更好,并且完全独立于监视器属性,例如伽马。
  • Display在 ClearType 中渲染的小模式文本的屏幕截图在任何Ideal屏幕上看起来都比-mode 文本好得多,即使是那些具有不同 gamma 的屏幕。

WPF 渲染引擎可以做到这一点,还是我必须回到 GDI 上?(在屏幕外使用 Aliased 或 ClearType 渲染没有任何困难)

4

2 回答 2

0

当然没有明显的方法可以做到这一点。我想绘制图像从来都不是 WPF 的目标。事实上,它实际上在大多数情况下都能很好地做到这一点,这一定是偶然的。

于 2012-03-22T23:14:54.733 回答
0

看来这现在有效。其他人可以验证吗?以下是相关代码:

var textBlock = new TextBlock();
textBlock.Text = "Hello World";
textBlock.FontFamily = new System.Windows.Media.FontFamily("Arial");
textBlock.Background = System.Windows.Media.Brushes.Transparent;
textBlock.Foreground = System.Windows.Media.Brushes.Black;
textBlock.FontSize = 50;

// . Set Formatting Mode Works! Setting the rendering mode doesn't. 
System.Windows.Media.TextOptions.SetTextFormattingMode(textBlock, System.Windows.Media.TextFormattingMode.Display);

编辑:忘了提我正在使用 .NET 4.5 框架

Edit2:Display 和 Ideal 之间的差异在较小的字体大小时尤其明显。

于 2013-09-17T19:28:57.143 回答