繁体   English   中英

在我的 VS 扩展中,如何在 Visual Studio 2015/2017 中以编程方式预览文件?

[英]In my VS extension, how can I programmatically preview a file in Visual Studio 2015/2017?

在我的 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);
        }
    }

当以其他方式启动预览时,如果文件已经在普通选项卡中打开,则此代码将切换到该选项卡而不是使用预览选项卡。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM