1. 程式人生 > >vs2013或者2015介面個性化(更換背景、主題)

vs2013或者2015介面個性化(更換背景、主題)

(這篇教程發出去以後,各位大佬們問題反饋還是挺多的,沒辦法,我看到底下網友提出來一種比較簡單的方法,今天又重新做了一次,各位大佬可以參考一下。)

 這算是第一次寫關於軟體配置方面的部落格,或者說教程吧,所以寫的儘量詳細一點。

  為了更換vs2013的背景,在網上查資料,然後自己試著弄,折騰了好久才弄好的,為了讓大家少走彎路,少費點時間,所以我寫一篇部落格,幫助真正需要的小夥伴們。前一段時間剛配置好的vs2013主題背景,發出來先讓大家看看唄吐舌頭(背景圖片可以自己更換哦)


本片部落格主要解決win10使用者上安裝Visual Studio 2013 Color Theme Editor的問題

 廢話不多說,下來進入正題:

1.安裝需要的外掛   

 1> Visual Studio 2013 SDK(可以在vs2013--->工具---->擴充套件和擴充套件-->聯機  裡邊搜尋下載)

下載的地址: http://www.microsoft.com/en-au/download/details.aspx?id=40758



 2> Visual Studio 2013Color Theme Editor(win7使用者可以在vs2013--->工具---->擴充套件和擴充套件-->聯機  裡邊搜尋下載。。。

如果不會或者嫌搜尋麻煩,部落格後邊有更加詳細的教程,往下看哦!大笑)

下載地址:https://visualstudiogallery.msdn.microsoft.com/9e08e5d3-6eb4-4e73-a045-6ea2a5cbdabe(可以在網上搜這個名字,下載一個就ok)


win10的系統貌似可以下載並安裝 上面的 第一個外掛,第二個外掛安裝的時候會報錯,或者兩個安裝時都報錯(win7的可以直接按上述方法試下,看報不報錯)

 如果報錯的話,就不要在vs2013裡面下載安裝了,直接在網上搜索下載並安裝

關於win10,用“工具-->擴充套件和更新”安裝會提示NET.xxx的錯誤或警告(估計是版本不符)

解決方案:

開啟”工具”下的”擴充套件和更新”選擇”聯機”右上角搜尋”Visual Studio 2013 Color Theme Editor”(注意空格,沒有空格貌似會搜不到)

 

單機“Visual Studio 2013 Color Theme Editor”右邊的”詳細資訊”,我們從網站上單獨下載這個擴充套件包


下載後,用壓縮工具開啟,然後修改檔名為” extension..vsixmanifest”檔案,右鍵編輯他(用記事本編輯噢)將其中的<Dependency Id="Microsoft.Framework.NDP" DisplayName="Microsoft .NET Framework" Version="4.5" />這段話刪除掉.


將修改好的檔案重新放回” ColorThemeEditor”檔案內.關掉壓縮工具,點選安裝.

安裝成功後,開啟C:\Users\13081\AppData\Local\Microsoft\VisualStudio目錄(紅色字型是主機賬戶名,你的跟我肯定不一樣,所以你自己修改一下),可以看到這個目錄下有兩個資料夾,如圖


一個有Exp字尾,一個沒有.沒有的這個就是成功安裝“Visual Studio 2013 Color Theme Editor”的,而Exp(就是我們改了背景的VS)並沒有安裝,那麼,我們將沒有後綴資料夾內的” Extensions”檔案複製到Exp字尾資料夾下,再次啟動VS2013個性版.

開啟“工具”→”擴充套件和更新”在已安裝內找到“Visual Studio 2013 Color Theme Editor”啟動它→重啟VS2013個性版。重啟後可以看到”工具”欄選項下多了

” Change color Theme ”和” Customize Colors ”

” Change color Theme ”,下擁有更多可以選擇的主題.

開啟” Customize Colors ”


至此,Visual Studio 2013 Color Theme Editor安裝成功,以後要用的話,就在你的工具裡邊。

2、按照上述方法安裝好兩個外掛後,開啟vs2013

 a、 點選“檔案-->新建-->專案-->在“已安裝”內選擇“C#”找到裡面的“擴充套件性”選擇“Visual Studio Package”→”確定”建立一個VSPackage(自定名稱,如果在接下來的操作中出現問題,試試用純字母名稱建立試試?噢,對了,在”其他專案型別”裡的”擴充套件性”也能找到“Visual Studio Package”)(安裝正確的話肯定能找到)



  b、建立好專案後,開啟解決方案資源管理器,右擊“引用” -->“新增引用”  新增以下引用(一個一個新增)

“PresentationCore”

“PresentationFramework”

“System.Xaml”

“WindowsBase”

“System.ComponentModel.Composition”

“Microsoft.VisualStudio.CoreUtility”

“Microsoft.VisualStudio.Text.UI”

“Microsoft.VisualStudio.Text.UI.Wpf”


可以在上面 “搜尋程式集”裡面(右上角箭頭)搜尋你要新增的名稱

 c、新增完成後,開啟“xxxPackage.cs”(xxx就是你剛才建專案時的名字,我這裡是VSPackagePackage.cs),把你原來的程式碼刪除,將下面程式碼貼上到你的檔案裡邊

<pre name="code" class="csharp">using Microsoft.VisualStudio;
using Company.VSPackage;////注意改掉此句中的VSPackage ,改成你的專案名稱,如若找不到
using Microsoft.VisualStudio.Shell;
using Microsoft.VisualStudio.Shell.Interop;
using System;
using System.Runtime.InteropServices;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Media.Imaging;

namespace Moen.IDEBackground
{
    [PackageRegistration(UseManagedResourcesOnly = true)]
    [InstalledProductRegistration("#110", "#112", "1.0", IconResourceID = 400)]
    [Guid(GuidList.guidVSPackagePkgString)]//注意改掉此句中的VSPackage ,改成你的專案名稱,如若找不到,可在Guids.cs尋找變數名替換,標頭檔案也需改變
    [ProvideAutoLoad(UIContextGuids.NoSolution)]
    [ProvideAutoLoad(UIContextGuids.SolutionExists)]
    public sealed class IDEBackgroundPackage : Package
    {
        protected override void Initialize()
        {
            base.Initialize();

            Application.Current.MainWindow.Loaded += MainWindow_Loaded;
        }

        void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            var rWindow = (Window)sender;

            var rImageSource = BitmapFrame.Create(new Uri(@"C:\vs 背景\11.jpg"/*圖片路徑*/), BitmapCreateOptions.None, BitmapCacheOption.OnLoad);
            rImageSource.Freeze();

            var rImageControl = new Image()
            {
                Source = rImageSource,
                Stretch = Stretch.UniformToFill,
                HorizontalAlignment = HorizontalAlignment.Center,
                VerticalAlignment = VerticalAlignment.Center,
            };

            Grid.SetRowSpan(rImageControl, 4);
            var rRootGrid = (Grid)rWindow.Template.FindName("RootGrid", rWindow);
            rRootGrid.Children.Insert(0, rImageControl);
        }
    }
}

要注意上面的註釋那塊要改成建立專案時的名稱 ★★★  上面圖片後面的路徑改成你自己圖片的路徑

編譯執行即可得到一個新vs2013實驗例項。

現在,可能你什麼還看不見,或者說只能看到一些邊框有圖片,不要著急,馬上就能看到了。

下來,我們匯入一個透明的主題,這個透明的主題,我會在部落格後邊上傳成一個檔案,你到時直接下載,然後匯入到你的vs裡邊去,就是用上面的Visual Studio 2013 Color Theme Editor匯入。Import Theme按鈕匯入(下圖)

當然,如果你嫌麻煩,我會再上傳一個我自己的主題,就是你上面看到的那個背景。

匯入之後,下邊就會出現你匯入的主題,點選主題上邊的“編輯”按鈕,進入如下頁面(下圖)

在此頁面找到如下選項,並將其設定為0,

“Environment →EnvironmentBackgroundGradientXXX”

"Environment → MainWindowActiveCaption”

“Environment →MainWindowInactiveCaption”

“Environment → CommandShelfBackgroundGradientXXX”

“Environment →CommandShelfHighlightGradientXXX”

“Environment → CommandBarGradientXXX”

“Environment → CommandBarToolBarBorder”

其中如Environment →EnvironmentBackgroundGradientXXX,指Environment →EnvironmentBackgroundGradient開頭的全部選項

接下來就可以看到,除了編輯器,其他地方的圖片都可以顯示出來。

關閉vs2013實驗例項,開啟原版vs2013,在剛才的文件裡找到“source.extension.vsixmanifest”

進入“Assets”選項卡,單擊“New”按鈕。在彈出的對話方塊裡,“Type”選“Microsoft.VisualStudio.MefComponent”,“Source”選“Aproject in current solution”,“Project”選當前的Project,目前應該就一個選項的。最後OK

接下來在專案中新建一個檔案,叫“EditorBackground.cs”,程式碼如下

using Microsoft.VisualStudio.Text.Classification;
using Microsoft.VisualStudio.Text.Editor;
using Microsoft.VisualStudio.Utilities;
using System;
using System.ComponentModel.Composition;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Threading;

namespace Moen.IDEBackground
{
    [Export(typeof(IWpfTextViewCreationListener))]
    [ContentType("Text")]
    [ContentType("BuildOutput")]
    [TextViewRole(PredefinedTextViewRoles.Document)]
    class Listener : IWpfTextViewCreationListener
    {
        [Import]
        IEditorFormatMapService EditorFormatMapService = null;

        public void TextViewCreated(IWpfTextView rpTextView)
        {
            new EditorBackground(rpTextView);

            //去掉斷點邊欄的背景
            var rProperties = EditorFormatMapService.GetEditorFormatMap(rpTextView).GetProperties("Indicator Margin");
            rProperties["BackgroundColor"] = Colors.Transparent;
            rProperties["Background"] = Brushes.Transparent;
        }
    }

    class EditorBackground
    {
        IWpfTextView r_TextView;
        ContentControl r_Control;
        Grid r_ParentGrid;
        Canvas r_ViewStack;

        public EditorBackground(IWpfTextView rpTextView)
        {
            r_TextView = rpTextView;
            r_Control = (ContentControl)r_TextView;
            r_TextView.Background = Brushes.Transparent;
            r_TextView.BackgroundBrushChanged += TextView_BackgroundBrushChanged;
            r_TextView.Closed += TextView_Closed;
            r_Control.Loaded += TextView_Loaded;
        }
        void MakeBackgroundTransparent()
        {
            r_TextView.Background = Brushes.Transparent;
            r_ViewStack.Background = Brushes.Transparent;
            r_ParentGrid.ClearValue(Grid.BackgroundProperty);
        }
        void TextView_Loaded(object sender, RoutedEventArgs e)
        {
            if (r_ParentGrid == null)
                r_ParentGrid = (Grid)r_Control.Parent;
            if (r_ViewStack == null)
                r_ViewStack = (Canvas)r_Control.Content;
            MakeBackgroundTransparent();
        }
        void TextView_BackgroundBrushChanged(object sender, BackgroundBrushChangedEventArgs e)
        {
            r_Control.Dispatcher.BeginInvoke(new Action(() =>
            {
                while (r_ParentGrid.Background != null)
                    MakeBackgroundTransparent();
            }), DispatcherPriority.Render);
        }
        void TextView_Closed(object sender, EventArgs e)
        {
            //清除委託,以防記憶體洩露
            r_TextView.Closed -= TextView_Closed;
            r_TextView.BackgroundBrushChanged -= TextView_BackgroundBrushChanged;
        }
    }
}

除錯,進入除錯即可進入實驗用例VS,進入配色表,找到“Environment →EnvironmentBackground”,設為透明。再找到“Environment → Window”設定為透明,"TreeView → Background",透明度設為0。


至此,大功就告成了。。。。。。。。。

下次直接在“開始選單->Microsoft Visual Studio 2013->Microsoft Visual Studio SDK->Tools->Start Experimental Instance of Visual Studio2013”開啟編譯器。或者,你也可以將開啟的實驗例項鎖定在電腦的邊側欄

vs2013的原版還是原版,如需使用面板,必須使用vs2013實驗例項,可在上路徑找出。其他版本的vs應該都可以按照這個方法,更換主題或者背景。

主題背景連結:http://pan.baidu.com/s/1mhC9SWK    美女背景圖主題

                                         http://pan.baidu.com/s/1pLeofmr     全透明主題