在我的 Visual Studio 扩展中,我显示相关文件。
我有 可以在 Visual Studio 中打开文件的代码。
我要 可以预览文件的代码
这是我用来使用 DTE2 对象打开文件的代码。但是如何预览文件?
public void ViewFile(FileInfo file)
{
if (null == file)
throw new ArgumentNullException(nameof(file));
var dte2 = (EnvDTE80.DTE2)DTE;
dte2.MainWindow.Activate();
var newWindow = dte2.ItemOperations.IsFileOpen(file.FullName)
? FindWindow(file.FullName)
: dte2.ItemOperations.OpenFile(file.FullName);
newWindow.Activate();
}
这是一个预览文件,如果您在解决方案资源管理器中单击它:
这是一个打开的文件,如果您在解决方案资源管理器中双击它,或者对预览文件进行更改:
最佳答案
您可以使用 NewDocumentStateScope 从 Visual Studio 扩展的预览选项卡中打开文档。 :
private void OpenDocumentInPreview(DTE dte, string filename)
{
using (new NewDocumentStateScope(__VSNEWDOCUMENTSTATE.NDS_Provisional, VSConstants.NewDocumentStateReason.SolutionExplorer))
{
dte.ItemOperations.OpenFile(filename);
}
}
当以其他方式启动预览时,如果文件已经在普通选项卡中打开,则此代码将切换到该选项卡而不是使用预览选项卡。
关于c# - 在我的 VS 扩展中,如何在 Visual Studio 2015/2017 中以编程方式预览文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45689836/