先上效果图:

第一步:

下载VS对应版本的SDK,这里用2012举例:Visual Studio 2012 SDK

第二步:

创建时语言选择C#,最后Finish界面的两个复选框把勾勾去掉

第三步:

添加4个引用:“PresentationCore”、“PresentationFramework”、“System.Xaml”、“WindowsBase”

第四步:

打开对应位置的程序GuidList,记住红圈中的两段代码,之后选中箭头指向的"XXXPackage.cs"文件

将代码改成如下(注意看注释!):

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 Microsoft.VSPackage1    //命名空间改成上面第一个红圈里的内容
{[PackageRegistration(UseManagedResourcesOnly = true)][InstalledProductRegistration("#110", "#112", "1.0", IconResourceID = 400)][Guid(GuidList.guidVSPackage1PkgString)]    //这里改成上面第二个第二个红圈里的内容[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(@"D:\程序设计\bj01.jp1"/*图片路径,记得修改!!*/), 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);}}
}

到这里就已经完成1/3了,进行调试

第五步:

这时启动的是实验用VS,并且可以看出已经有外框了

之后在实验用VS处进入“工具->扩展功能和更新程序”如下图:

下载并安装箭头的那个插件(需要重启实验VS),如果VS库连接不上,那就等一等可能那边服务器关了

第六步:

下载已经配置好的模板: https://pan.baidu.com/s/1v2aDzHJ5t4oUTmm4OSQLJg  密码: ty8b

之后在实验用VS处进入“工具->Custumize Colors”会弹出一个页面,选择页面右边的"Import Theme"

打开刚刚下载的主题,到这里你就会发现好像已经成功了,但其实编辑器背景还是黑的,要把这层去掉

第七步:

关闭实验用VS,回到一开始的VSpackage,打开"source.extension.vsixmanifest"文件(应该就是开着的)

之后如下

点击OK之后再添加3个引用(和第二步一样):

System.ComponentModel.Composition、Microsoft.VisualStudio.CoreUtility、

Microsoft.VisualStudio.Text.UI、Microsoft.VisualStudio.Text.UI.Wpf(后三个在“扩展”里)

第八步:

新建一个.cs文件,命名"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,就可以看到成果,不过当然这只在实验实例里有效,所以你每次打开VS都要编译一下VSpackage比较麻烦,这里其实可以直接进,我的路径如下:

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft Visual Studio 2012\Microsoft Visual Studio SDK\Tools\Start Experimental Instance of Visual Studio 2012

启动这个"Start Experimental Instance of Visual Studio 2012"就直接是实验实例了

备注:这个其实我也是学习网上教程的,不过它们因为没有现成的背景透明度设置文件,再加上其实很多地方都不清楚或者有问题和错误,所以最后想弄好还是比较麻烦的,需要查阅很多地方的资料,并且花的时间也不少

在这里就是整理一下,希望一样想设置背景的同学可以省一点时间,应该很快就可以搞定了,中间如果有问题可以回复问我

VS2012全屏背景修改教程相关推荐

  1. Html手机web背景全屏,使用全屏背景的网页设计欣赏 全屏网页背景教程

    使用全屏背景的网页设计欣赏 & 全屏网页背景教程 Sponsor 全屏的大背景网站之前分享过不少,这是2012年以及2013年的设计趋势,适合用全屏背景的网站有很多,比如摄影类.建筑类.餐厅美 ...

  2. 【UGUI】 全屏背景图片等比例拉伸自适应

    效果如下: 首先感叹一下,UGUI的自适应做的还是非常不错的,RectTransform中提供了非常多种的自适应方式.对做界面来说还是很友好的. 如果界面上需要有个全屏的背景图(UI界面一般都是有的吧 ...

  3. 全屏背景:15个jQuery插件实现全屏背景图像或媒体

    动态网站通常利用背景图像或预加载屏幕,以保证所有资源都加载到页面上,在浏览器中充分呈现.现在很多网站都炫耀自己的图像作为背景图像全屏背景,追溯到旧的Flash网站却用自己的方式在HTML资源重布局. ...

  4. 全屏css,CSS之全屏背景图

    吐槽啦:Yeah  明天就是国庆了o(* ̄▽ ̄*)o!哈哈,提前祝福各位园友国庆快乐.假期愉快.生活美满.天天开心!国庆我要回家一趟,把一些不用的东西带回家,走访一下亲朋好友,在家打几天酱油~~~ 言 ...

  5. uniapp小程序开发设置系统状态栏高度、全屏背景图设置

    效果: uniapp小程序开发设置系统状态栏高度/全屏背景图设置 <view class="login"><view class="status_bar ...

  6. 全屏背景图移动端滚动时白底问题

    最近响应式项目移动端遇到一个问题,页面使用的全屏的背景图片,但当它到了移动端需要滚动的时候,往下面一滚动,第二屏等会出现白底,后来让全屏背景图片固定了,再怎么滚动都不影响,解决掉了该尴尬问题. bod ...

  7. wordpress 背景_如何在WordPress中添加全屏背景图片

    wordpress 背景 Full screen background image seems to be a new design trend that is becoming fashionabl ...

  8. 微信小程序全屏背景图

    微信小程序全屏背景图,解决你在设置过程中出现的多次背景图重复出现的问题 wxml <view class="container" style="height: {{ ...

  9. vue 全屏背景图片 别看其他的了看我这篇就解决了!

    搜了好多篇博客 都没有完全解决我的问题 ,我要的是全屏背景图片,好多虽然有图片但是 只是在div中有图片 只是一个长条 或者是 完全没有图片. 直接上解决办法: 首先在登录界面Login.vue页面中 ...

最新文章

  1. Linux/服务器常用操作
  2. js小效果-简易计算器
  3. c语言程序段的流程图怎么画,大家帮我看看这个程序的流程图怎么画,谢了
  4. 11--MySQL数据查询应用(实战)(二)
  5. 笔记-项目采购管理-索赔的处理
  6. 最长公共前缀—leetcode14
  7. HDU - 3533 Escape(预处理+A*)
  8. c++ lambda 重载_您会后悔对Lambdas应用重载!
  9. 前端:CSS/08/框架
  10. matlab+text+extent,MATLAB字体及特殊符号标示方法
  11. [GCN] 增加可视化+代码注释 of GitHub项目:Graph Convolutional Networks in PyTorch
  12. 空字符串(“”)和null的区别
  13. Visio2016卸载干净,以及同时安装Office2016和Visio2016的方法
  14. 机器学习_深度学习毕设题目汇总——运动活动动作
  15. 毫米和像素怎么换算_将mm换算为px (毫米换算为像素)
  16. 33 大数据项目之电商数仓(电商数据仓库系统)
  17. excel中DATE(year,month,day)函数——oracle自定义函数
  18. 为什么不敢和别人竞争_为什么你很难交到朋友?可能是因为你不敢信任他人
  19. Java 周日期计算工具,获取当前第几周,按周数获取周一至周日,按日期获取周一至周日
  20. yoyo跑_yoyo主持人5岁女儿照片曝光 其老公魏哲浩个人资料简介

热门文章

  1. python画折线图-利用python画折线图
  2. python最适合做什么-总算明了python适合做什么
  3. 语音识别技术的发展历程,语音识别是如何工作的?语音识别资料概述
  4. 四川首例 “自贡话智能语音识别系统”在检察院投用
  5. Vue登录注册,并保持登录状态
  6. [总结]RTMP流媒体技术零基础学习方法
  7. FFmpeg源代码简单分析:avformat_alloc_output_context2()
  8. ITU-T Technical Paper: NP, QoS 和 QoE的框架以及它们的区别
  9. 视频编码国家标准AVS与H.264的比较(节选)
  10. 视频编码方案之间的比较(HEVC,H.264,MPEG2等)