| 
 问题刚刚出现时当时还在wpf3.5,百度+谷歌都没有太多的信息,倒是在微软的社区里有人提问,但没有好的解决方案。初步尝试关闭硬件加速功能。  
关闭硬件加速有两种办法,一是设置注册表值。  
即新建HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics\DisableHWAcceleration项,设置为1关闭加速。但注册表是系统全局设置,尝试软件设置。  
即在软件运行开始判断系统图形能力,设置是否开启加速:  
 
  
 
    switch (RenderCapability.Tier){ 
   
                      case Partical:                      case SoftOnly:                          RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly;                          break;                      case Full:                          RenderOptions.ProcessRenderMode = RenderMode.Default;                          break;                  }  
  
  
这里有一个微调,即使系统认为能部分开启硬件加速条件也使其关闭。其中注册表设置优先于程序设置,也就是注册表设置了关闭,软件中是开启不来的。   
尝试后问题没有解决,倒是测试提的几个界面错乱或者穿过软件显示桌面的bug没有再现了。是因为测试的机器显卡都比较烂,大多又没有装好正确的显卡驱动,关闭硬件加速后界面正常。  
   
解决思路二:  
在窗口或控件上设置字体属性就可以了,如下:  
 
  
   
   以下是代码片段: <UserControl x:Class="OPClient.PlatformManage.UserControlProxy"  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"  xmlns:d="http://schemas.microsoft.com/expression/blend/2008"  mc:Ignorable="d"  d:DesignHeight="400" d:DesignWidth="800"  FontFamily="NSimSun" FontSize="14" TextOptions.TextFormattingMode="Display"> |  
    
  
  
    
WPF4字体改善  
  WPF4对字体渲染做了很大的改善,增加了TextOptions属性,该属性可以设置TextFormattingMode,TextRenderingMode,TextHintingMode  
  1.TextFormattingMode  
  它提供了两种设置:  
  · Ideal —— WPF4之前的模式  
  · Display —— 新的模式,可以使字体显示更清晰  
  (一般将TextFormattingMode设置为Display,可以提高字体显示的清晰度)  
  2.TextRenderingMode  
  设置渲染模式,可以有以下设置:  
  Auto – This mode will use ClearType unless system settings have been set to specifically disable ClearType on the machine.  
  Aliased – No antialiasing will be used to draw text.  
  Grayscale – Grayscale antialiasing will be used to draw text.  
  ClearType – ClearType antialising will be used to draw text.  
  (一般用ClearType渲染出来的字体会比较平滑)  
  3.TextHintingMode  
  获取或设置一个值,该值影响文本元素的呈现行为,这是一种性能优化方式,当您对文本元素的任何文本属性进行动画处理时,可以使用此方式。  
  此属性的值采用以下两种可能的值:  
  Animated 通过使用一个更高效、但视觉精确下降的平滑算法来针对动画进行优化。(文本仍然是可读的;精度损失并不严重。)  
  Fixed(默认值)使用的算法针对视觉上精确的字体平滑效果进行了优化,但当将动画应用于字体元素的属性时,可能导致性能问题以及抖动,尤其是对于 FontSize 或转换/定位/投影。  
  (在需要对字体做一些动态效果,例如将字体缩放时,使用Animated能获取较高的性能,但同时也影响了其显示的清晰度)  
  4.WPF4.0中同时针对东亚字体的渲染进行了优化,现在它支持点阵字体了,而开启这个新特性十分简单,只需为FontFamily设置一种点阵字体就可以了  
  以下是一张推荐设置表 LanguageFont  
 
  
   
    
    |   Language   |  
      Font   |  
     
    
    |   Traditional Chinese   |  
      MingLiu   |  
     
    
    |   Simplified Chinese   |  
      SimSun   |  
     
    
    |   Japanese   |  
      MS Gothic   |  
     
    
    |   Korean   |  
      Gulium   |  
     
    
    |   Korean   |  
      Batang   |  
     
   
   
  |