1. 程式人生 > >vs2013 圖片背景·全透明背景圖

vs2013 圖片背景·全透明背景圖

    如圖,單一色的vs總會讓人煩躁,如果換一個背景的話,肯定會讓程式猿更好的coding...

   正式切入主題,以vs2013為例。

   說明:經過一系列處理,會產生另一個vs2013實驗例項,即我們想要的目標,原版的vs2013也會存在,沒什麼變化。

   準備:1、Visual Studio 2013 SDK  

               2、Visual Studio 2013 Color Theme Editor

                (上兩個東西均可在“工具---擴充套件和更新”裡面下載)

              3、一張圖片

   步驟

          1)、安裝好SDK後,進入VS。先新建一個Project,在“其它專案型別”那裡找到“Visual Studio Package”,接下來的對話方塊裡,選“C#”,然後基本是下一步。在最後一步把那兩個複選框取消,因為那個在這裡沒什麼用處。最後就成功新建了個VS擴充套件的Project。 //簡單起見,將檔名名為beijing

          2)、在“引用”處新增

“PresentationCore”

“PresentationFramework”

“System.Xaml”

“WindowsBase”

“System.ComponentModel.Composition”

“Microsoft.VisualStudio.CoreUtility”

“Microsoft.VisualStudio.Text.UI”

“Microsoft.VisualStudio.Text.UI.Wpf”

         3)、開啟“XXXPackage.cs”(XXX一般為這個Project的名字)檔案,程式碼 如下:

using Company.beijing;//beijing為檔名
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.guidbeijingPkgString)]//如若找不到,可在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(@"D:\VS2013\1.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);
        }
    }
}

      4)、編譯執行即可得到另一個vs2013實驗例項,左下角可看出



     5)、接下來在vs2013實驗例項中修改面板透明度

               開啟“工具---customize colors ”,本例子已深色為基礎,新建另一個Dark主題,進入"edit theme"配色區。

“Environment →EnvironmentBackgroundGradientXXX”

"Environment → MainWindowActiveCaption”

“Environment →MainWindowInactiveCaption”

“Environment → CommandShelfBackgroundGradientXXX”

“Environment →CommandShelfHighlightGradientXXX”

“Environment → CommandBarGradientXXX”

“Environment → CommandBarToolBarBorder”

找到這些並將其透明度設為0,其中如Environment →EnvironmentBackgroundGradientXXX,指Environment →EnvironmentBackgroundGradient開頭的全部選項



6)、接下來就可以看到比較可觀的背景了。但是編輯器的背景還是黑的。關閉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;
        }
    }
}

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

        經過上步驟即可得到目標vs2013背景。(唯一遺憾,“錯誤列表”無法透明化)

       下次直接在“開始選單->Microsoft Visual Studio 2013->Microsoft Visual Studio SDK->Tools->Start Experimental Instance of Visual Studio2013”開啟編譯器。

       原版還是原版,如需使用面板,必須使用vs2013實驗例項,可在上路徑找出。

       vs2010、vs2012都是可用的。有需要的童鞋拿去試試。改變一下心情。



相關推薦

vs2013 圖片背景·透明背景

    如圖,單一色的vs總會讓人煩躁,如果換一個背景的話,肯定會讓程式猿更好的coding...    正式切入主題,以vs2013為例。    說明:經過一系列處理,會產生另一個vs2013實驗例項,即我們想要的目標,原版的vs2013也會存在,沒什麼變化。    準

Java修改圖片png格式透明背景大小解析度

import java.awt.Graphics2D; import java.awt.Image; import java.awt.Transparency; import java.awt.image.BufferedImage; import java.io.File

背景圖片居中屏自適應顯示

center posit attach mage back 背景圖 自適應 rep sse .bg{ background-size: cover;background-image:url(../assets/images/sunshine.png);background-

透明背景對話框

對話 class str screen android rip att ati create 透明背景對話框 AlertDialog.Builder mBuilder = new AlertDialog.Builder(this, R.

vscode 設置透明背景

ctu ack app www. 並不是 .... opacity nts lan 一.前言 今天看到了博客園 這篇文章 後 Visual Studio 2017 設置透明背景圖 ,琢磨了下難道vscode不行嗎。。 vscode目前有一個設置背景的插件 back

如何去除圖片中的白色背景(變透明

很多時候,寫小程式會用到一些圖片素材,你可能會遇到這樣的問題——這些圖片,放上去之後,跟我們預期想象的不太一樣,圖片有白色的方框背景,讓自己的整個介面變得很難看。這樣的問題對於那些會修圖的大神,簡直就是小菜一碟,但不是每個搞程式的人都會修圖,那不會怎麼辦?程式設計師當然是用程式碼解決啊,而很多語

筆記:狀態列佔位,以及隱藏5.0+半透明背景,加在非屏,oncreate中,屏切非屏不抖動。

public void initStatusBar() { StatusBarUtil.setLightMode(this); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { this.g

Python PIL.Image之修改圖片背景透明

------------------------------------------------語法基礎------------------------------------------------ import PIL.Image as Image           

HTML5 body設定背景圖片

之前這樣加背景圖測出來有的手機瀏覽器上全屏背景圖寬度超過螢幕寬度,比如mate9,oppo X9上 <div class='box'></div> html,body{ width:100%; height:100% } .box{ wi

css之背景圖片和插入圖片的區別以及精靈的使用

一,背景圖片和插入圖片 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>40-css背景

IOS中圖片作為button的背景拉伸

適用於IOS6.0         UIImage *image2 = [UIImageimageNamed:@"header_left_back_normal"];     CGFloat top = 0; // 頂端蓋高度     CGFloat bottom = 0

Python PIL.Image之修改圖片背景透明

------------------------------------------------語法基礎------------------------------------------------ import PIL.Image as Image      &

關於移動端響應式背景顯示的問題

十一國慶期間,公司要做一個活動,設計部交過來一張圖,只有一個按鈕需要我敲,其他部分只有一張圖,如下 完整設計稿 切圖如下: 設計稿寬是1875px 以下為html程式碼: <div class="box" style="background-ima

使用glfw庫將OpenCV讀取到的圖片作為OpenGL的背景紋理貼

轉載請註明出處:http://my.csdn.NET/ye_shen_wei_mian 前段時間接觸過一點glfw,個人而言不太喜歡freeglut的回撥機制,glfw不失為一個可以替代的選擇。 使用glfw應當注意以下幾點: 1;glfw是可以使用在多執行緒當中使用的。

將文字顯示在圖片上面,並使文字背景透明

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html

CSS實現響應式背景

  當前很流行的一種網頁形式就是滿屏大圖,本文將用最簡單的方式實現該效果。用到了CSS 屬性background-size ,無需javascript。   核心概念   使用background-size 屬性,填充整個viewport   當css屬性

01.LoT.UI 前後臺通用框架分解系列之——小圖片背景屏顯示(可自動切換背景

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title><

繪製透明背景點陣

一、繪製透明背景的點陣圖,windows提供了一個API函式 TransparentBlt The TransparentBlt function performs a bit-block transfer of the color data corresponding to a rectangle of p

php 縮放gif和png透明背景變成黑色的解決方法

工作中需要縮放一些png、gif圖然後在去Imagecopymerge,可是發現使用了imagecreatetruecolor和imagecopyresampled後發現本來透明的背景圖變成了黑色。 $img = imagecreatetruecolor(

獲取上傳的圖片並儲存為縮,解決gif背景變黑問題

{                    //所有格式的圖片都可用,不是GIF格式的可以認為是隻有一幀GIF圖片                    image.SelectActiveFrame( ImgFrmDim, i );//選擇圖片第幾幀                    System.IO.