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”右邊的”詳細資訊”,我們從網站上單獨下載這個擴充套件包
將修改好的檔案重新放回” 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 全透明主題