Pane
Espacio de nombres: Digi21.Digi3D
Ensamblado: Digi21.DigiNG.Plugin
Panel acoplable creado con Panes.Add. Permite cambiar el título del panel, acoplarlo, cerrarlo y recibir eventos cuando el usuario actúa sobre él.
public class Pane
Constructores
public Pane()
El constructor existe para las clases derivadas que se crean con las sobrecargas genéricas de Panes.Add<T>. Un Pane creado con new no está asociado a ningún panel: sus propiedades y métodos lanzan ObjectDisposedException. Panes.Add<T> asocia el objeto al panel después de ejecutar el constructor, así que en el constructor de la clase derivada las propiedades y métodos también lanzan ObjectDisposedException; el constructor solo puede suscribirse a los eventos.
Cada propiedad y cada método busca el panel en el administrador de paneles de Digi3D.AI. Si Digi3D.AI ya ha destruido el panel (por ejemplo, al cerrar la aplicación), lanzan ObjectDisposedException.
Propiedades
| Propiedad | Descripción |
|---|---|
string Title { get; set; } |
Título del panel. Al crear el panel vale lo mismo que Text del formulario. |
string TabCaption { get; set; } |
Texto de la pestaña del panel cuando el panel comparte grupo de pestañas con otros paneles. |
string Tooltip { get; set; } |
Texto de la información sobre herramientas (tooltip) del título del panel. |
Size MinTrackSize { set; } |
Tamaño mínimo, en píxeles, al que el usuario puede reducir el panel. |
Size MaxTrackSize { set; } |
Tamaño máximo, en píxeles, al que el usuario puede ampliar el panel. |
bool IsClosed { get; } |
true si el panel está cerrado. |
bool IsHidden { get; } |
true si el panel está oculto. |
bool IsSelected { get; } |
true si el panel es la pestaña seleccionada de su grupo. |
bool IsFloating { get; } |
true si el panel está flotando. |
bool IsSidePanel { get; } |
true si el panel es un panel lateral (acoplado con DockSidePane). |
bool IsTabsVisible { get; } |
true si se ve la barra de pestañas del grupo del panel. |
bool IsFocus { get; } |
true si el panel tiene el foco del teclado. |
Métodos
| Método | Descripción |
|---|---|
void SetFocus() |
Da el foco del teclado al panel. |
void Select() |
Selecciona el panel en su grupo de pestañas. |
void Hide() |
Oculta el panel. |
void Close() |
Cierra el panel. |
void ToggleDocking() |
Alterna el panel entre acoplado y flotante. |
void DockPane(PaneDock dock) |
Acopla el panel al borde dock de la ventana principal. |
void DockSidePane(PaneDock dock, Size size) |
Acopla el panel como panel lateral en el borde dock, con el tamaño size en píxeles. |
void FloatPane(Rectangle rect) |
Pone el panel flotante en una ventana con el rectángulo rect. |
Eventos
Todos los eventos son de tipo EventHandler. El parámetro sender es este Pane y e es un EventArgs vacío. Digi3D.AI produce cada evento cuando el gestor de paneles le notifica la acción correspondiente. Los eventos acabados en -ing se producen antes del cambio, y los acabados en -ed, después.
| Evento | Se produce cuando |
|---|---|
Closing, Closed |
El panel se cierra. Digi3D.AI también los produce al destruir el panel cuando se cierra un archivo de dibujo o la aplicación. |
Floating, Floated |
El panel pasa a ser flotante. |
Docking, Docked |
El panel se acopla. |
Attaching, Attached |
El panel se une a otro panel en un grupo de pestañas. |
Detaching |
El panel se separa de su grupo de pestañas. |
Dragging |
El usuario arrastra el panel. |
Activated, Deactivated |
El panel se activa o se desactiva. |
Pinning, Pinned |
El usuario pulsa la chincheta del panel y el panel pasa a ocultarse automáticamente. |
Unpinning, Unpinned |
El usuario pulsa la chincheta del panel y el panel deja de ocultarse automáticamente. |
Expanding, Expanded |
Un panel que se oculta automáticamente se despliega desde su pestaña. |
Collapsing, Collapsed |
Un panel que se oculta automáticamente se repliega a su pestaña. |
SplitterResizing, SplitterResized |
El usuario cambia el tamaño del panel con el divisor que lo separa de la zona contigua. |
Ejemplo
Esta orden añade un panel con una lista de los mensajes que recibe. La clase PanelConRegistro deriva de Pane, recibe la lista en su constructor y escribe en ella cada vez que el panel se acopla, se activa o se cierra:
using System.Drawing;
using System.Windows.Forms;
using Digi21.Digi3D;
using Digi21.DigiNG.Plugin.Command;
namespace Ejemplos;
public class PanelConRegistro : Pane
{
private readonly ListBox _registro;
public PanelConRegistro(ListBox registro)
{
_registro = registro;
Docked += (sender, e) => _registro.Items.Add("Acoplado");
Activated += (sender, e) => _registro.Items.Add("Activado");
Closed += (sender, e) => Digi3D.OutputWindow.WriteLine("Panel de registro cerrado.");
}
}
[Command(Name = "PANEL_REGISTRO")]
public class PanelRegistro : Command
{
public PanelRegistro()
{
Initialize += (sender, e) =>
{
var lista = new ListBox { Dock = DockStyle.Fill };
var formulario = new Form
{
Text = "Registro",
FormBorderStyle = FormBorderStyle.None,
};
formulario.Controls.Add(lista);
// El último argumento se pasa al constructor de PanelConRegistro.
var panel = Digi3D.Panes.Add<PanelConRegistro>(formulario, new Size(250, 300), PaneDock.Right, lista);
panel.TabCaption = "Registro";
panel.MinTrackSize = new Size(150, 100);
Dispose();
};
}
}