title: Visual Studio suggesting fully qualified namespaces when not needed
body: <p>With Visual Studio 2010 (possibly 2008 as well) I am noticing behavior where Intellisense will suggest the fully qualified namespace for enums.</p>
  
  <p>For example, I can write code like this:</p>
  
  <pre><code>element.HorizontalAlignment = HorizontalAlignment.Right;
  element.VerticalAlignment = VerticalAlignment.Bottom;
  </code></pre>
  
  <p>But when I try to write it, it suggests I write it like this:</p>
  
  <pre><code>element.HorizontalAlignment = System.Windows.HorizontalAlignment.Right;
  element.VerticalAlignment = System.Windows.VerticalAlignment.Bottom;
  </code></pre>
  
  <p>This unnecessary extra code can really add up and makes it less readable, and I have to basically fight with Intellisense to avoid it.</p>
  
  <p>Is there I reason for this?  Can I just turn it off?  I assume the reason is that the name of the enum is the same as the name of the property.  But that's really not a good reason.</p>
  
  <p><strong>EDIT:</strong></p>
  
  <p>Here's another example that demonstrates why fully qualified naming is not necessary.</p>
  
  <pre><code>using SomeOtherNamespace;
  
  namespace SomeNamespace
  {
      public class Class1
      {
          public Class2 Class2 { get; set; }
  
          public Class1()
          {
              // These all compile fine and none require fully qualified naming.  The usage is context specific.
              // Intellisense lists static and instance members and you choose what you wanted from the list.
  
              Class2 = Class2.Default;
              Class2.Name = "Name";
              Class2.Name = Class2.Default.Name;
              Class2 = Class2;
          }
      }
  }
  
  namespace SomeOtherNamespace
  {
      public class Class2
      {
          public static Class2 Default { get; set; }
  
          // public static Class2 Class2;  (This throws an error as it would create ambiguity and require fully qualified names.)
  
          // public static string Name { get; set; }  (This also throws an error because it would create ambiguity and require fully qualified names.
  
          public string Name { get; set; }
      }
  }
  </code></pre>