怎么改变VS2012背景
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么改变VS2012背景相关的知识,希望对你有一定的参考价值。
就是改成这样:
有哪位大神知道?!!
安装好SDK后,进入VS。先新建一个Project,在“其它项目类型”那里找到“Visual Studio Package”
接下来的对话框里,选“C#”,然后基本是下一步。在最后一步把那两个复选框取消,因为那个在这里没什么用处。最后就成功新建了个VS扩展的Project
三、初步改造
第一步我们给VS加上背景图。首先对Project添加WPF的程序集为引用,有四个,分别为“PresentationCore”、“PresentationFramework”、“System.Xaml”、“WindowsBase”。然后打开“XXXPackage.cs”(XXX一般为这个Project的名字)文件,代码如下:
usingMicrosoft.VisualStudio.Shell;
usingMicrosoft.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.guidIDE_BackgroundPkgString)]
[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(@"G:\Picture\Pool\絵师100人展02_p109.png"/*图片路径*/),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);
代码修改一下后,调试,这时就会编译扩展,然后启动实验用VS。(如果这是第一次启动实验用VS,可能要像刚安装完VS那样设置一下)接着你会看到角落处显现出那张背景图
(免调试进入实验用VS方法:开始菜单->Microsoft Visual Studio 2012->Microsoft Visual Studio SDK->Tools->Start Experimental Instance of Visual Studio 2012)
四、修改皮肤配色
为了方便,在实验用VS处进入“工具->扩展功能和更新程序”,选“在线”部分,然后在中间找到“Visual Studio 2012 Color ThemeEditor”并安装,重启实验用VS
重启后,进入“工具->CustomizeColors”。本例子已深色为基础,于是在左边“New Theme”处,直接在文本框输入一个皮肤名,然后点“Create”。这样就进入了皮肤配色表
首先把主界面那一大块灰色给除掉。找到“Environment→ EnvironmentBackgroundGradient”为开头的,统统都把不透明度设为0。然后点表左上角的“Save andApply Theme”,关掉所有页面。然后你就会看到背景啦
再继续,找到“Environment→ MainWindowActiveCaption”、“Environment→ MainWindowInactiveCaption”、“Environment→ CommandShelfBackgroundGradientXXX”、“Environment→ CommandShelfHighlightGradientXXX”、“Environment→ CommandBarGradientXXX”、“Environment→ CommandBarToolBarBorder”,都把不透明度设为0,
然后应用。上面那部分灰色的也没啦
至于这些是对应哪里的呢,可以通过那名字来确定,不过不准。要详细弄清楚很麻烦,要用反编译软件反要修改的控件的xaml文档,找到对应的画刷名。非常复杂,所以我这里提供我自己用的。在“Customize Colors”那里点“Import Theme”即可
五、编辑器
到目前为止,打开文件后,编辑器的背景还是黑的。接下来就是把这层黑的去掉
先打开“source.extension.vsixmanifest”文件,进入“Assets”选项卡,单击“New”按钮。在弹出的对话框里,“Type”选“Microsoft.VisualStudio.MefComponent”,“Source”选“Aproject in current solution”,“Project”选当前的Project,目前应该就一个选项的。最后OK
接下来新建一个文件,这里就叫“EditorBackground.cs”
在输入代码前添加几个引用——System.ComponentModel.Composition、Microsoft.VisualStudio.CoreUtility、Microsoft.VisualStudio.Text.UI、Microsoft.VisualStudio.Text.UI.Wpf(后三个在“扩展”处找)
搞定后文件代码如下:
usingMicrosoft.VisualStudio.Text.Classification;
usingMicrosoft.VisualStudio.Text.Editor;
usingMicrosoft.VisualStudio.Utilities;
usingSystem;
usingSystem.ComponentModel.Composition;
usingSystem.Windows;
usingSystem.Windows.Controls;
usingSystem.Windows.Media;
using System.Windows.Threading;
namespaceMoen.IDEBackground
[Export(typeof(IWpfTextViewCreationListener))]
[ContentType("Text")]
[ContentType("BuildOutput")]
[TextViewRole(PredefinedTextViewRoles.Document)]
class Listener : IWpfTextViewCreationListener
[Import]
IEditorFormatMapServiceEditorFormatMapService = null;
public voidTextViewCreated(IWpfTextView rpTextView)
new EditorBackground(rpTextView);
//去掉断点边栏的背景
var rProperties =EditorFormatMapService.GetEditorFormatMap(rpTextView).GetProperties("IndicatorMargin");
rProperties["BackgroundColor"] = Colors.Transparent;
rProperties["Background"]= Brushes.Transparent;
class EditorBackground
IWpfTextView r_TextView;
ContentControl r_Control;
Grid r_ParentGrid;
Canvas r_ViewStack;
public EditorBackground(IWpfTextViewrpTextView)
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();
voidTextView_BackgroundBrushChanged(object sender, BackgroundBrushChangedEventArgse)
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”,设置一个颜色值(我这里是#A0000000),作为编辑器的背景色。再找到“Environment → Window”设置为透明
六、结尾
基本的VS界面改造就是这么多了。不过有个棘手的问题——xaml编辑器和个别的编辑器(如html的)因为是承载在VS的一个子窗口上,而这个窗口的背景是黑色的。目前仍在研究中…… 参考技术A 点击工具-〉扩展与更新,在联机中搜索theme Editor,把第一个插件下载下来。
重启vs后,工具一栏中会出现Change Color Theme这个选项,然后调成黑色就是我的样式了。
背景的话,点击工具-〉扩展与更新,在联机中搜索Text background,下载第一个插件
重启vs后,任意打开一个文件,那么编辑框的背景就会改变了,会转变为我的文档中图片里的某个图片,然后自己设置一个图片就行了追问
不行啊。。。。具体怎么做
第七篇--如何改变vs2017版的背景
C:\Users\zsunny\AppData\Local\Microsoft\VisualStudio\15.0_9709afbe\Extensions\o0g0c52k.3od\Images
以上是关于怎么改变VS2012背景的主要内容,如果未能解决你的问题,请参考以下文章