作者:Walkdan(walkdan<at>gmail.com), http://www.cnblogs.com/walkdan

虽然白底具有最丰富的视觉效果,不过我并不喜欢用白底的编辑器,原因只有一个,保护视力。由于黑色没有光线,而白色包含全部光线,所以黑色对眼睛没有刺激,而白色却具有最强的刺激。对于需要长时间盯住屏幕的程序员来说,白色无疑是对眼睛的最大伤害。以前用Delphi编程一直不觉得眼睛累,因为Delphi提供了蓝底的Classic配色方案和黑底的Twilight方案,我更喜欢用Twilight,曾经有段时间看不到黑底,便没有编程的感觉,真是很怀念Delphi。

Visual Studio编辑器很不错,也可以修改配色,到了2005版,更是提供了一百多配色项,但问题是为什么就不弄几个配色方案,这一百多项得你自己慢慢改。

这天眼睛总于受不了,于是用VB.NET写了个简单的宏VS StyleManager,装进Visual Studio中,可以方便的保存和恢复配色方案。同时参考Delphi,写了相应的Classic和Twilight配色方案,现在我又可以用Twilight了,终于能够拯救眼睛了!

现在把宏分享出来,希望能对各位同行的眼睛有所帮助。

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
Classic方案

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
Twilight方案

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
Presentation方案。如果经常做演示,大字体是需要的。

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager

thinkinnight同学提供的vi darkblue方案。

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManagerMacro Source Code
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager'' Save & Load ColorAndFont Style for Visual Studio 2003, 2005
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager'
'
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager'
' Copyright 2006 Qiu Dan (walkdan(at)gmail.com)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager'
' http://www.cnblogs.com/walkdan
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager'
'
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager'
' This program is free software; you can redistribute it and/or
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager'
' modify it under the terms of the GNU General Public License
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager'
' as published by the Free Software Foundation; either version 2
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager'
' of the License, or (at your option) any later version.
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
Option Strict Off
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
Option Explicit Off
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
Imports System
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
Imports System.IO
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
Imports System.Text
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
Imports System.Collections
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
Imports System.Xml
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
Imports System.Drawing
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
Imports System.Windows
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
Imports System.Windows.Forms
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
Imports EnvDTE
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
'8 for Visual Studio 2005, 7 for Visual Studio 2003
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
#Const VS_VERSION = 8
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
Public Module StyleManagerModule StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager    
''--------------------------------------------------------------
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
    ''StyleItem
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
    Public Class StyleItemClass StyleItem
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
Public Sub New()Sub New()
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
'Me.New("", 1, 1, False)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
        End Sub

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
Public Sub New()Sub New(ByVal name As StringByVal foreground As UInt32, ByVal background As UInt32, ByVal bold As Boolean)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Me.Name = name
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Me.Foreground = ColorTranslator.FromOle(Convert.ToInt32(foreground))
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Me.Background = ColorTranslator.FromOle(Convert.ToInt32(background))
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Me.Bold = bold
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
End Sub

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
Public Shared Function DeSerializeFromXml()Function DeSerializeFromXml(ByVal node As XmlNode) As StyleItem
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Dim item As New StyleItem
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            item.Name 
= node.Attributes.ItemOf("name").Value
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Try
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                item.Foreground 
= ColorTranslator.FromHtml(node.Attributes.ItemOf("foreground").Value)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                item.Background 
= ColorTranslator.FromHtml(node.Attributes.ItemOf("background").Value)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                item.Bold 
= Boolean.Parse(node.Attributes.ItemOf("bold").Value)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Catch
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
End Try
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Return item
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
End Function

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
Public Sub SerializeToXml()Sub SerializeToXml(ByVal writer As XmlTextWriter)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            writer.WriteStartElement(
"FontColorItem")
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            writer.WriteAttributeString(
"name"Me.Name)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            writer.WriteAttributeString(
"foreground", ColorTranslator.ToHtml(Me.Foreground))
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            writer.WriteAttributeString(
"background", ColorTranslator.ToHtml(Me.Background))
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            writer.WriteAttributeString(
"bold"Me.Bold.ToString)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            writer.WriteEndElement()
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
End Sub

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
' Properties
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
        Public Property Background()Property Background() As Color
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Get
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
Return Me._background
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
End Get
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Set(ByVal value As Color)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
Me._background = value
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
End Set
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
End Property

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
Public Property Bold()Property Bold() As Boolean
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Get
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
Return Me._bold
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
End Get
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Set(ByVal value As Boolean)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
Me._bold = value
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
End Set
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
End Property

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
Public Property Foreground()Property Foreground() As Color
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Get
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
Return Me._foreground
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
End Get
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Set(ByVal value As Color)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
Me._foreground = value
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
End Set
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
End Property

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
Public Property Name()Property Name() As String
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Get
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
Return Me._name
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
End Get
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Set(ByVal value As String)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
Me._name = value
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
End Set
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
End Property

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
' Fields
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
        Private _foreground As Color
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
Private _background As Color
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
Private _bold As Boolean
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
Private _name As String
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager    
End Class

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager    
''--------------------------------------------------------------
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
    ''StyleItemCollection
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
    Public Class StyleItemCollectionClass StyleItemCollection
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
Inherits CollectionBase
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
' Methods
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
        Public Overridable Sub Add()Sub Add(ByVal obj As StyleItem)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
MyBase.List.Add(obj)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
End Sub

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
Public Overridable Sub Remove()Sub Remove(ByVal obj As StyleItem)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
MyBase.List.Remove(obj)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
End Sub

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
' Properties
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
        Public Property Item()Property Item(ByVal i As IntegerAs StyleItem
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Get
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
Return CType(MyBase.List.Item(i), StyleItem)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
End Get
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Set(ByVal value As StyleItem)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
MyBase.List.Item(i) = value
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
End Set
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
End Property

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager    
End Class

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager    
''--------------------------------------------------------------
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
    ''StyleSchema
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
    Public Class StyleSchemaClass StyleSchema
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
' Methods
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
        Public Sub New()Sub New(ByVal name As String)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Me.StyleItems = New StyleItemCollection
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Me.Name = name
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
End Sub

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
Public Shared Function DeSerializeFromXml()Function DeSerializeFromXml(ByVal node As XmlNode) As StyleSchema
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Dim style As New StyleSchema(node.Attributes.ItemOf("name").Value)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Try
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
Dim fontNode As XmlNode = node.SelectSingleNode("Font")
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                style.Font 
= New Font(fontNode.Attributes.ItemOf("family").Value, Single.Parse(fontNode.Attributes.ItemOf("size").Value))
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
Dim nodes As XmlNodeList = node.SelectNodes("FontColorItems/FontColorItem")
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
For Each itemNode As XmlNode In nodes
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                    style.StyleItems.Add(StyleItem.DeSerializeFromXml(itemNode))
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
Next
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Catch
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
End Try
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Return style
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
End Function

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
Public Sub SerializeToXml()Sub SerializeToXml(ByVal writer As XmlTextWriter)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            writer.WriteStartElement(
"Style")
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            writer.WriteAttributeString(
"name"Me.Name)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            writer.WriteStartElement(
"Font")
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            writer.WriteAttributeString(
"family"Me.Font.FontFamily.Name)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            writer.WriteAttributeString(
"characterSet""0")
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            writer.WriteAttributeString(
"size"Me.Font.Size.ToString)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            writer.WriteEndElement()
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            writer.WriteStartElement(
"FontColorItems")
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Dim item1 As StyleItem
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
For Each item1 In Me.StyleItems
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                item1.SerializeToXml(writer)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Next
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            writer.WriteEndElement()
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            writer.WriteEndElement()
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
End Sub

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
Public Shared Function DeSerializeFromFile()Function DeSerializeFromFile(ByVal filename As StringAs StyleSchema
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
If File.Exists(filename) Then
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
Dim doc As New XmlDocument
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                doc.Load(filename)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
Dim node As XmlNode = doc.SelectSingleNode("Styles/Style")
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
If Not node Is Nothing Then
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                    
Return StyleSchema.DeSerializeFromXml(node)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
End If
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
End If
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Return Nothing
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
End Function

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
Public Sub SaveToFile()Sub SaveToFile(ByVal filename As String)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
If (Not filename Is ""Then
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
Dim writer As New XmlTextWriter(filename, Encoding.UTF8)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                writer.WriteStartDocument(
True)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                writer.WriteStartElement(
"Styles")
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                SerializeToXml(writer)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                writer.WriteEndElement()
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                writer.WriteEndDocument()
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                writer.Close()
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
End If
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
End Sub

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
Public Sub ApplyToApplication()Sub ApplyToApplication()
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Dim dteProperty As [Property ]()Property= DTE.Properties("FontsAndColors""TextEditor").Item("FontFamily")
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            dteProperty.Value 
= Font.FontFamily.Name
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            dteProperty 
= DTE.Properties("FontsAndColors""TextEditor").Item("FontSize")
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            dteProperty.Value 
= Font.Size
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Dim fontColorProperty As [Property ]()Property= DTE.Properties("FontsAndColors""TextEditor").Item("FontsAndColorsItems")
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
For Each item As StyleItem In _styleItems
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
Dim ci As ColorableItems = fontColorProperty.Object(item.Name)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
If Not ci Is Nothing Then                    
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                    ci.Foreground 
= Convert.ToUInt32(ColorTranslator.ToOle(item.Foreground))
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                    ci.Background 
= Convert.ToUInt32(ColorTranslator.ToOle(item.Background))
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                    ci.Bold 
= item.Bold
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
End If
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Next
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
End Sub

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
Public Shared Function DeSerializeFromApplication()Function DeSerializeFromApplication() As StyleSchema
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Dim style As New StyleSchema("default")
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Dim fontFamity As String = DTE.Properties("FontsAndColors""TextEditor").Item("FontFamily").Value.ToString
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Dim fontSize As Single = Single.Parse(DTE.Properties("FontsAndColors""TextEditor").Item("FontSize").Value.ToString)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            style.Font 
= New Font(fontFamity, fontSize)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Dim fontColorProperty As [Property ]()Property= DTE.Properties("FontsAndColors""TextEditor").Item("FontsAndColorsItems")
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Dim ci As ColorableItems
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
For Each ci In CType(fontColorProperty.Object, FontsAndColorsItems)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                style.StyleItems.Add(
New StyleItem(ci.Name, ci.Foreground, ci.Background, ci.Bold))
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Next
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Return style
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
End Function

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
' Properties
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
        Public Property Font()Property Font() As Font
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Get
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
Return Me._font
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
End Get
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Set(ByVal value As Font)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
Me._font = value
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
End Set
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
End Property

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
Public Property StyleItems()Property StyleItems() As StyleItemCollection
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Get
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
Return Me._styleItems
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
End Get
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Set(ByVal value As StyleItemCollection)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
Me._styleItems = value
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
End Set
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
End Property

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
Public Property Name()Property Name() As String
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Get
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
Return Me._name
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
End Get
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Set(ByVal value As String)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
Me._name = value
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
End Set
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
End Property

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
' Fields
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
        Private _font As Font
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
Private _styleItems As StyleItemCollection
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
Private _name As String
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager    
End Class

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager    
''--------------------------------------------------------------
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
    Public Class WinWrapperClass WinWrapper
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
Implements System.Windows.Forms.IWin32Window
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
Overridable ReadOnly Property Handle()Property Handle() As System.IntPtr Implements System.Windows.Forms.IWin32Window.Handle
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Get
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
Dim iptr As New System.IntPtr(DTE.MainWindow.HWnd)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
Return iptr
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
End Get
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
End Property

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager    
End Class

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager    
''--------------------------------------------------------------
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
    Private Sub InitFileDialog()Sub InitFileDialog(ByRef fileDialog As FileDialog)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager#
If VS_VERSION = 7 Then
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        fileDialog.Filter 
= "Visual Studio 2003 style(*.vss7)|*.vss7|All files (*.*)|*.*"
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager#
Else
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        fileDialog.Filter 
= "Visual Studio 2005 style(*.vss8)|*.vss8|All files (*.*)|*.*"
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager#
End If
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager    
End Sub

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager    
Public Sub SaveSettings()Sub SaveSettings()
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
Try
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Dim winptr As New WinWrapper
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Dim SaveFileDialog As New Forms.SaveFileDialog
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            InitFileDialog(SaveFileDialog)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            SaveFileDialog.Title 
= "Save Style Settings"
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
If SaveFileDialog.ShowDialog(winptr) = Forms.DialogResult.OK Then
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
Dim style As StyleSchema
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                style 
= StyleSchema.DeSerializeFromApplication()
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
Dim filename As String = SaveFileDialog.FileName
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                style.SaveToFile(filename)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
MsgBox("Save Finish")
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
End If
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
Catch err As System.Exception
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
MsgBox(err.Message)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
End Try
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager    
End Sub

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager    
''--------------------------------------------------------------
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
    Public Sub LoadSettings()Sub LoadSettings()
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
Try
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Dim winptr As New WinWrapper
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
Dim openFileDialog As New Forms.OpenFileDialog
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            InitFileDialog(openFileDialog)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            openFileDialog.Title 
= "Open Style Settings"
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
If openFileDialog.ShowDialog(winptr) = Forms.DialogResult.OK Then
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
Dim filename As String = openFileDialog.FileName
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
Dim style As StyleSchema = StyleSchema.DeSerializeFromFile(filename)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                style.ApplyToApplication()
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager                
MsgBox("Load Finish")
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
End If
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
Catch err As System.Exception
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager            
MsgBox(err.Message)
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager        
End Try
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager    
End Sub

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
End Module

[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager
[原创]程序员更需要保护眼睛 -- 实用工具Visual Studio StyleManager


------------
附件提供可以直接使用的StyleManager宏和几个的配色方案。注意这个宏需要处理一百多配色项,运行较慢。

1.安装StyleManager宏:

  a) 打开Visual Studio菜单工具|宏|加载宏项目,打开文件StyleMacros.vsmacros即可。注意不同版本的VS选择不同的宏。

2.使用StyleManager宏:
 
  a) Alt+F8打开宏资源管理器
  b) 调入配色方案: 运行StyleManager.LoadSettings宏 --> 调入附件中vss8\目录下的配色方案(VS2003的方案文件是.vss7, VS2005是.vss8)
  c) 修改配色: 打开菜单工具|选项 --> 环境|字体和颜色
  d) 保存配色方案:运行StyleManager.SaveSettings宏
 
3. 如果大家能够做出其他不错的配色方案,请发邮件到(walkdan<at>gmail.com),我加入到附件中,让大家分享更多的方案。

转载请注明出处

Download: VS StyleManager 1.0.6 for Visual Studio 2003, 2005

Reversion:
2007-03-26 1.0.6 新增加了vi darkblue(VS2005)方案,感谢thinkinnight提供
2006-11-03 1.0.5 新增加了torte(VS2003)方案,感谢大橘子提供
2006-08-06 1.0.4 修改了Code Definition Window配色, 感谢 Seuler.Shi
2006-04-13 1.0.3 修改了Twilight的XML配色方案,value型规范为Yellow
2006-04-12 1.0.2 对于VS2005, 可以直接导入.vssettings文件
2006-04-11 1.0.1 新增加VS2003的蓝色底Classic方案

 

posted on 2006-04-10 03:03 Walkdan 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/walkdan/archive/2006/04/10/370931.html

相关文章:

  • 2021-09-02
  • 2021-06-09
  • 2021-06-22
  • 2021-12-06
  • 2021-11-04
  • 2021-06-28
  • 2022-12-23
猜你喜欢
  • 2021-11-21
  • 2021-08-28
  • 2022-12-23
  • 2022-12-23
  • 2021-09-17
  • 2022-02-09
  • 2022-12-23
相关资源
相似解决方案