文件位置:IViewContent.cs
/// <summary>/// IViewContent is the base interface for "windows" in the document area of SharpDevelop./// A view content is a view onto multiple files, or other content that opens like a document/// (e.g. the start page)./// </summary>public interface IViewContent : IDisposable, ICanBeDirty, IServiceProvider{/// <summary>/// This is the UI element for the view./// You can use both Windows.Forms and WPF controls./// </summary>object Control {get;}/// <summary>/// Gets the control which has focus initially./// </summary>object InitiallyFocusedControl {get;}/// <summary>/// The workbench window in which this view is displayed./// </summary>IWorkbenchWindow WorkbenchWindow {get;set;}/// <summary>/// Is raised when the value of the TabPageText property changes./// </summary>event EventHandler TabPageTextChanged;/// <summary>/// The text on the tab page when more than one view content/// is attached to a single window./// </summary>string TabPageText {get;}/// <summary>/// The title of the view content. This normally is the title of the primary file being edited./// </summary>string TitleName {get;}/// <summary>/// Is called each time the name for the content has changed./// </summary>event EventHandler TitleNameChanged;/// <summary>/// The tooltip that will be shown when you hover the mouse over the title/// </summary>string InfoTip {get;}/// <summary>/// Is called each time the info tip for the content has changed./// </summary>event EventHandler InfoTipChanged;/// <summary>/// Saves the content to the location <code>fileName</code>/// </summary>/// <remarks>/// When the user switches between multiple views editing the same file, a view/// change will trigger one view content to save that file into a memory stream/// and the other view content will load the file from that memory stream./// </remarks>void Save(OpenedFile file, Stream stream);/// <summary>/// Load or reload the content of the specified file from the stream./// </summary>/// <remarks>/// When the user switches between multiple views editing the same file, a view/// change will trigger one view content to save that file into a memory stream/// and the other view content will load the file from that memory stream./// </remarks>void Load(OpenedFile file, Stream stream);/// <summary>/// Gets the list of files that are being edited using this view content./// The returned collection usually is read-only./// </summary>IList<OpenedFile> Files { get; }/// <summary>/// Gets the primary file being edited. Might return null if no file is edited./// </summary>OpenedFile PrimaryFile { get; }/// <summary>/// Gets the name of the primary file being edited. Might return null if no file is edited./// </summary>FileName PrimaryFileName { get; }/// <summary>/// Builds an <see cref="INavigationPoint"/> for the current position./// </summary>INavigationPoint BuildNavPoint();bool IsDisposed { get; }event EventHandler Disposed;/// <summary>/// Gets if the view content is read-only (can be saved only when choosing another file name)./// </summary>bool IsReadOnly { get; }/// <summary>/// Gets if the view content is view-only (cannot be saved at all)./// </summary>bool IsViewOnly { get; }/// <summary>/// Gets whether this view content should be closed when the solution is closed./// </summary>bool CloseWithSolution { get; }#region Secondary view content support/// <summary>/// Gets the collection that stores the secondary view contents./// </summary>ICollection<IViewContent> SecondaryViewContents { get; }/// <summary>/// Gets switching without a Save/Load cycle for <paramref name="file"/> is supported/// when switching from this view content to <paramref name="newView"/>./// </summary>bool SupportsSwitchFromThisWithoutSaveLoad(OpenedFile file, IViewContent newView);/// <summary>/// Gets switching without a Save/Load cycle for <paramref name="file"/> is supported/// when switching from <paramref name="oldView"/> to this view content./// </summary>bool SupportsSwitchToThisWithoutSaveLoad(OpenedFile file, IViewContent oldView);/// <summary>/// Executes an action before switching from this view content to the new view content./// </summary>void SwitchFromThisWithoutSaveLoad(OpenedFile file, IViewContent newView);/// <summary>/// Executes an action before switching from the old view content to this view content./// </summary>void SwitchToThisWithoutSaveLoad(OpenedFile file, IViewContent oldView);#endregion}
IViewContent
是一个接口,定义了视图内容的基本行为和属性。在 SharpDevelop IDE 中,视图内容是文档区域中的“窗口”,可以是一个编辑器窗口,也可以是其他类型的窗口,如起始页。
以下是 IViewContent
接口的主要功能:
-
获取和设置视图内容的 UI 元素:通过
Control
属性,可以获取和设置视图内容的 UI 元素。这个 UI 元素可以是 Windows.Forms 控件,也可以是 WPF 控件。 -
获取和设置视图内容的标题:通过
TitleName
属性,可以获取和设置视图内容的标题。这个标题通常是正在编辑的主要文件的标题。 -
获取和设置视图内容的标签页文本:通过
TabPageText
属性,可以获取和设置视图内容的标签页文本。这个文本在多个视图内容附加到同一个窗口时使用。 -
保存和加载视图内容:通过
Save
和Load
方法,可以保存和加载视图内容。这些方法接受一个OpenedFile
对象和一个Stream
对象,用于保存和加载文件。 -
获取正在编辑的文件列表:通过
Files
属性,可以获取正在编辑的文件列表。这个列表通常是一个只读的集合。 -
获取正在编辑的主要文件:通过
PrimaryFile
属性,可以获取正在编辑的主要文件。如果没有任何文件正在编辑,这个属性可能返回null
。 -
获取正在编辑的主要文件的名称:通过
PrimaryFileName
属性,可以获取正在编辑的主要文件的名称。如果没有任何文件正在编辑,这个属性可能返回null
。 -
构建导航点:通过
BuildNavPoint
方法,可以构建一个导航点,用于表示当前的位置。 -
获取视图内容的关闭行为:通过
CloseWithSolution
属性,可以获取视图内容的关闭行为。这个属性表示当解决方案关闭时,视图内容是否应该关闭。 -
获取视图内容的只读和只读状态:通过
IsReadOnly
和IsViewOnly
属性,可以获取视图内容的只读和只读状态。如果视图内容是只读的,那么它只能保存到另一个文件名,不能保存到原始文件。如果视图内容是只读的,那么它不能保存到任何文件。 -
获取和设置视图内容的上下文帮助提供者:通过
ContextHelpProvider
属性,可以获取和设置视图内容的上下文帮助提供者。上下文帮助提供者用于提供上下文相关的帮助信息。 -
获取和设置视图内容的工具宿主:通过
ToolsHost
属性,可以获取和设置视图内容的工具宿主。工具宿主用于显示和管理工具。 -
获取和设置视图内容的属性容器:通过
PropertyContainer
属性,可以获取和设置视图内容的属性容器。属性容器用于存储和显示对象的属性。 -
获取和设置视图内容的剪贴板处理程序:通过
ClipboardHandler
属性,可以获取和设置视图内容的剪贴板处理程序。剪贴板处理程序用于处理剪贴板操作,如复制、粘贴、剪切等。 -
获取和设置视图内容的撤销处理程序:通过
UndoHandler
属性,可以获取和设置视图内容的撤销处理程序。撤销处理程序用于处理撤销和重做操作。 -
获取和设置视图内容的文件文档提供程序:通过
FileDocumentProvider
属性,可以获取和设置视图内容的文件文档提供程序。文件文档提供程序用于提供文件文档。 -
获取和设置视图内容的组件变更服务:通过
ComponentChangeService
属性,可以获取和设置视图内容的组件变更服务。组件变更服务用于通知组件的变更。 -
**获取和设置视图内容的