.NET frameworks is nice indeed. I like it, and I am a Delphi "integralist".
Unfortunately, someone in MS decided that interface name prefix 'I' is good
but class name prefix ('T' or 'C') it is not. This decreases immensely code
clarity.
C# chaps have a case-sensitive solution: they uncapitalize the instance
names, e.g. graphics = new Graphics
Very readable indeed! Not to mention the problem if the instance is visible
outside the assembly (.NET in general is NOT case-sensitive).
Delphi would have the solution: type equivalence, e.g.

type
  TGraphics = System.Drawing.Graphics;
var
  Graphics: TGraphics;

but manually rename all framerwork types is not an option.
Fortunately, using reflection it is quite easy to develop a tool that
inspects an assembly and generate the type definitions automatically.

PrefixIt! Basic usage.
1. Load an assembly, lists of namespaces and types are presented.
2. Unckeck any namespace and or type that you want to exclude from the
   elaboration (some are automatically excluded from a list inside
   PrefixIt! option file).
3. Generate the type definition units. For any namespace <N> an <N>.T.pas
   unit is generated.
4. Copy the generated units where your project can find them.
5. Inside your units add to uses referring namespace <N> uses referring
   namespace <N>.T (uses referring namespace <N> may still be necessary to
   get access to interfaces and for the code generated by the form designer).
   System namespace is implied, so you have only to add a uses to System.T
6. Now inside your units you can use the 'T' prefixed names.

PrefixIt! More info
Default behaviour of PrefixIt! is:
 a. Prefix normal class names with prefix 'T'
 b. Prefix class names of exceptions with prefix 'E' and remove the
    'Exception' postfix if present
 c. For COM classes inside interop assembly remove the 'Clas's postfix if
    present
 d. Prefix value type but enumerated (record) names with prefix 'R'
 e. Prefix enumerated type names with prefix 'T'
 f. Generate units named <N>.T
The prefixes can be changed and point b and c can be disabled using
Options dialog.
Options is saved in PrefixIt.xml. This file also contains a list of types
that must not be elaborated. The format is as below.

<?xml version="1.0"?>
<TOptions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.ocem.com/settings">
  <ClassPrefix>T</ClassPrefix>
  <RecordPrefix>R</RecordPrefix>
  <EnumeratedPrefix>T</EnumeratedPrefix>
  <ExceptionPrefix>E</ExceptionPrefix>
  <RemoveExceptionPostfix>true</RemoveExceptionPostfix>
  <RemoveClassPostfix>true</RemoveClassPostfix>
  <KnownTypes>
    <anyType xsi:type="KnownType">
      <NETName>System.Object</NETName>
      <DelphiName />
    </anyType>
    <anyType xsi:type="KnownType">
      <NETName>System.Void</NETName>
      <DelphiName />
    </anyType>
    <anyType xsi:type="KnownType">
      <NETName>System.__ComObject</NETName>
      <DelphiName />
    </anyType>
    <anyType xsi:type="KnownType">
      <NETName>System.String</NETName>
      <DelphiName />
    </anyType>
    <anyType xsi:type="KnownType">
      <NETName>System.Decimal</NETName>
      <DelphiName />
    </anyType>
  </KnownTypes>
</TOptions>

To exclude more types add lines with the format

    <anyType xsi:type="KnownType">
      <NETName>[full .NET name]</NETName>
      <DelphiName />
    </anyType>

To have a type redefined in a custom way add lines with the format

    <anyType xsi:type="KnownType">
      <NETName>[full .NET name]</NETName>
      <DelphiName>[custom name]</DelphiName>
    </anyType>

D9, that is D2005, changes the unit/namespace relation. This will probably
require an alteration of the generated unit names.








