Note:
1.xaml编辑器和个别的编辑器(如HTML的)因为是承载在VS的一个子窗口上,所以背景依然是黑色的。
2.该背景必须在VS实验环境下使用。
效果图:

1.准备工作


2.可直接套用的VSTheme
http://pan.baidu.com/s/1kTFt3gz

2.新建Package项目


1.安装好SDK后,进入VS。先新建一个Project,在“其它项目类型”那里找到“Visual Studio Package”
2.接下来的对话框里,选“C#”,然后基本是下一步。在最后一步把那两个复选框取消,因为那个在这里没什么用处。最后就成功新建了个VS扩展的Project
3.对Project添加WPF的程序集为引用,有四个,分别为“PresentationCore”、“PresentationFramework”、“System.Xaml”、“WindowsBase”。
4.然后打开“XXXPackage.cs”(XXX一般为这个Project的名字)文件,
代码如下:
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.SoheeBackground//命名空间自己修改回自己用的

{

   [PackageRegistration(UseManagedResourcesOnly = true)]

   [InstalledProductRegistration("#110", "#112","1.0", IconResourceID = )]

//此处删除了一条代码段,原因不明,对后续影响不明

   [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;

            //加载图片  E:\FileDownload\Explorer\be30870a304e251ff3c5926fa786c9177f3e537f.jpg

            var rImageSource = BitmapFrame.Create(new Uri(@"E:\FileDownload\Explorer\241f95cad1c8a786d814d6eb6709c93d70cf501c.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, );

            var rRootGrid =(Grid)rWindow.Template.FindName("RootGrid", rWindow);

            rRootGrid.Children.Insert(, rImageControl);

        }

    }

}

5.代码修改后,调试,这时就会编译扩展,然后启动实验用VS。(如果这是第一次启动实验用VS,可能要像刚安装完VS那样设置一下)接着你会看到角落处显现出那张背景图

3.修改皮肤配色


1.关闭实验用VS,前往官网下载并安装Visual Studio 2013 Color Theme Editor
https://visualstudiogallery.msdn.microsoft.com/9e08e5d3-6eb4-4e73-a045-6ea2a5cbdabe
2.安装成功后,重启VS,并调试启动实验用VS
3.此时在实验用VS中搜索并按照Color Theme

4.重启,重启后,进入“工具->CustomizeColors”。在“Customize Colors”那里点“Import Theme”即可(文件在一开始百度云下载的打包文件中)

4.编辑器透明化


1.到目前为止,打开文件后,编辑器的背景还是黑的。接下来就是把这层黑的去掉。先打开“source.extension.vsixmanifest”文件,进入“Assets”选项卡,单击“New”按钮。在弹出的对话框里,“Type”选“Microsoft.VisualStudio.MefComponent”,“Source”选“Aproject in current solution”,“Project”选当前的Project,目前应该就一个选项的。最后OK
 
2.添加引用 System.ComponentModel.Composition、Microsoft.VisualStudio.CoreUtility、Microsoft.VisualStudio.Text.UI、Microsoft.VisualStudio.Text.UI.Wpf
 
3.新建一个文件,这里就叫“EditorBackground.cs”
代码如下:
  1. 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 Microsoft.SoheeBackground
    { [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("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(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; } } }


4.再启动调试用VS,选择之前Import 的 Theme即可。
 
5.以后可以直接在 开始-VisualStudio2013-Microsoft VisualStudio SDK-Tools-Start Experimental Instance 开启调试用VS

PS:参考

1.http://startalkers.lofter.com/post/1cb119b5_5be5e5a

2.http://doc.okbase.net/u012915516/archive/124296.html

VS2013 图片背景·全透明背景图(转)的更多相关文章

  1. vscode 全透明背景图

    一.前言 08.02更新:已魔改插件 可以直接下载插件使用了 10.18跟新:已发布到vscode扩展  下载地址 下载后手动安装就ok了,具体配置安装后点开插件有说明的!!! 今天看到了博客园 这篇 ...

  2. painter半透明的 底层窗口全透明背景

  3. css实现背景全透明样式

    background-color:transparent; filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#26FFF ...

  4. IE6下png背景不透明——张鑫旭博客读书笔记

    从今天开始跟着大牛张鑫旭的步伐,每天进步一点点 问题:IE6不支持png背景透明或半透明 一.可解决的方法 补充:css滤镜主要是用来实现图像的各种特殊效果.(了解) css滤镜的标识符是“filte ...

  5. Android开发中的全屏背景显示方案

    引子 不管是Android还是iOS平台中,都可以看到一些应用在启动的时候会先出现一个启动画面(Splash Activity),如QQ.微信等.这个启动画面中往往会将ActionBar和Status ...

  6. Android有趣的全透明效果--Activity及Dialog的全透明(附android系统自带图标大全)[转]

    原文地址:http://blog.csdn.net/sodino/article/details/5822147 1.Activity全透明 同学zzm给了这个有趣的代码,现在公布出来. 先在res/ ...

  7. css3全屏背景图片切换特效

    效果体验:http://hovertree.com/texiao/css3/10/ 一般做图片切换效果,都会使用JS或者jQuery脚本,今天发现,其实只用CSS也可以实现.试试效果吧. 效果图: 代 ...

  8. CSS之全屏背景图

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

  9. Visual Studio 2017 设置透明背景图

    一.前言 给大家分享一下,如何为VS2017设置透明背景图.下面是一张设置前和设置后的图片. 设置前: 设置后: 二.设置背景图片的扩展程序 我们打开VS的扩展安装界面:[工具]->[扩展和更新 ...

随机推荐

  1. EasyUI实现更换主题能过样式添加id实现

    EasyUI实现更换主题能过样式添加id实现,将原来的样式值添加到cookie中保存,这样下次浏览器访问时,就是我们原来选择的样式! 首先将easyui的样式文件加入一个ID,这里命名为easyuiT ...

  2. ubuntu中gdb调试工具的使用

    首先有一段.c代码 1.可调试gcc编译:gcc -g -o xxx xxx.c 2.启动gdb调试 gdb xxx 3.在main函数处设置断点 break main 4.运行程序 run 5.其他 ...

  3. MySQL创建用户与授权

    一. 创建用户 命令: CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明: username:你将创建的用户名 host:指定该用户 ...

  4. Python 中的闭包

    通常来说,函数中的局部变量在函数调用结束的时候不能再被引用,所分配的空间也会被回收. 但是通过闭包这种技术,函数调用结束了,它的局部变量的值还可以保存在闭包里. 试举一例: def make_adde ...

  5. 0基础学python3心得体会 - python3学习笔记 - python3基础

    基础预热 print()会依次打印每个字符串,遇到逗号","会输出一个空格,可以打印整数,或者计算 结果 Python提供了一个input(),,可以让用户输入字符串,并存放到一个 ...

  6. Java经典编程题50道之三十

    有一个已经排好序的数组.现输入一个数,要求按原来的规律将它插入数组中. public class Example30 {    public static void main(String[] arg ...

  7. bcache的使用

    一.前提:内核中需要配置bcache模块 1.1 检查 - 是否存在于内核中:检查/sys/fs/bcache目录是否存在,没有说明内核中没有bcache - 是否以内核模块方式存在:检查/lib/m ...

  8. 关于HTTP,你知道哪些?

    HTTP简介 HTTP 的全称是 Hypertext Transfer Protocol,超文本传输协议 规定客户端和服务器之间的数据传输格式 让客户端和服务器能有效地进行数据沟通 HTTP 协议是网 ...

  9. C语言_来了解一下GCC编译器编译C可执行脚本的过程

    GCC简介    Linux系统下的gcc(GNU C Compiler)是GNU推出的功能强大.性能优越的多平台编译器,是GNU的代表作品之一.gcc是可以在多种硬体平台上编译出可执行程序的超级编译 ...

  10. Java集合框架(五)—— Map、HashMap、Hashtable、Properties、SortedMap、TreeMap、WeakHashMap、IdentityHashMap、EnumMap

    Map Map用于保存具有映射关系的数据,因此Map集合里保存着两组值,一组值用于保存Map里的key,另一组值用于保存Map里的value,key和value都可以是任何引用类型的数据.Map的ke ...