【发布时间】:2011-03-30 15:59:07
【问题描述】:
我想利用 Visual Studio 2010 的标题栏浪费的空间。
是否可以将工具栏或标签栏放在标题栏中,如谷歌浏览器?
可以写扩展吗?
谢谢
【问题讨论】:
我想利用 Visual Studio 2010 的标题栏浪费的空间。
是否可以将工具栏或标签栏放在标题栏中,如谷歌浏览器?
可以写扩展吗?
谢谢
【问题讨论】:
Visual Studio 有一个全屏模式:查看 -> 全屏模式(或 Shift + Alt + Enter,默认情况下)。
【讨论】:
这似乎是不可能的,即使使用 Visual Studio 2012 和 Visual Studio 2013。
【讨论】:
这似乎是可能的,至少在 VS2013 中(但可能也适用于 VisualCommander 扩展支持的其他版本)。这是所需的宏,也许有人会发现它有用:
- 在 Visual Studio 2013 中隐藏标题栏。
public class E : VisualCommanderExt.IExtension
{
public void SetSite(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package)
{
events = DTE.Events;
dteEvents = events.DTEEvents;
dteEvents.OnStartupComplete += OnStartupComplete;
}
public void Close()
{
dteEvents.OnStartupComplete -= OnStartupComplete;
}
private void OnStartupComplete()
{
try
{
HideTitleBar();
}
catch
{
}
}
private bool HideTitleBar()
{
System.Windows.FrameworkElement e =
FindElement(System.Windows.Application.Current.MainWindow,
"MainWindowTitleBar");
if (e != null)
{
e.Visibility = System.Windows.Visibility.Collapsed;
return true;
}
return false;
}
private System.Windows.FrameworkElement FindElement(System.Windows.Media.Visual v, string name)
{
if (v == null)
return null;
for (int i = 0; i < System.Windows.Media.VisualTreeHelper.GetChildrenCount(v); ++i)
{
System.Windows.Media.Visual child =
System.Windows.Media.VisualTreeHelper.GetChild(v, i) as
System.Windows.Media.Visual;
if (child != null)
{
System.Windows.FrameworkElement e =
child as System.Windows.FrameworkElement;
if (e != null && e.Name == name)
return e;
}
System.Windows.FrameworkElement result = FindElement(child, name);
if (result != null)
return result;
}
return null;
}
private EnvDTE.Events events;
private EnvDTE.DTEEvents dteEvents;
}
来源:https://vlasovstudio.com/visual-commander/extensions.html
【讨论】: