我们最近将旧的VB6 Windows应用程序升级到C#.NET 4.0.我希望替换对Microsoft.VisualBasic.Compatibility.VB6.Support类的引用,因为Visual Basic 2010警告我'Microsoft.VisualBasic.Compatibility.*类已过时并且仅在32位进程内受支持.http://go.microsoft.com/fwlink/?linkid=160862 '
本文向我保证:'兼容性命名空间中的函数是为了解决.NET Framework 1.0版中的缺点而创建的.在大多数情况下,后来的框架版本中添加的功能可用于重写功能,从而提高性能.
我的问题是,我需要使用什么来添加后来的框架版本来取消兼容性.*类?我需要逐步淘汰TwipsToPixelX,TwipsToPixelY等等.此外,FontChangeUnderline,FontChangeSize和其他与字体相关的东西.
谢谢各位的帮助.只是为了跟进,这是我在处理缇到像素转换时所做的事情.
private const float TWIPS_PER_INCH = 1440f;
private static Form _form = new Form();
private static Graphics _graphics = _form.CreateGraphics();
public static float TwipsPerPixelX()
{
return TWIPS_PER_INCH/_graphics.DpiX;
}
public static double TwipsToPixelsY(double twips)
{
float dpiy = _graphics.DpiY;
return twips * dpiy / TWIPS_PER_INCH;
}
public static double TwipsToPixelsX(double twips)
{
float dpix = _graphics.DpiX;
return twips * dpix / TWIPS_PER_INCH;
}
public static double PixelsToTwipsY(double pixels)
{
float dpiy = _graphics.DpiY;
return pixels * TWIPS_PER_INCH / dpiy;
}
public static double PixelsToTwipsX(double pixels)
{
float dpix = _graphics.DpiX;
return pixels * TWIPS_PER_INCH / dpix;
}
Run Code Online (Sandbox Code Playgroud)
希望有人发现这有趣和/或有用
与字体相关的功能可以很容易地替换。例如:
Function FontChangeBold(f As Font, bold As Boolean) As Font
Dim alreadySet = (f.Style And FontStyle.Bold) = FontStyle.Bold
If bold = alreadySet Then Return f
If bold Then Return New Font(f, f.Style Or FontStyle.Bold)
Return New Font(f, f.Style And Not FontStyle.Bold)
End Function
Run Code Online (Sandbox Code Playgroud)
这将检查所需的样式是否已设置。如果是,则返回旧字体。否则,它将返回具有相同样式的新字体,但样式除外bold,现在根据要求设置了样式。
| 归档时间: |
|
| 查看次数: |
7515 次 |
| 最近记录: |