Mejores prácticas: Crear configurables agregar-in
Hacer de herramientas y comportamientos que se puede configurar
La API Extensibilidad de proporciona la capacidad de hacer que sus herramientas y comportamientos configurables. Si una herramienta se puede configurar o el comportamiento, puede configurar el componente al crear un visor. Para exponer de configuración en una herramienta o un comportamiento, debe aplicar la ESRI.ArcGIS.Cliente.Extensibilidad de.Interfaz de ISupportsConfiguration. Esto requiere que implemente la interfaz de los siguientes métodos:
- Configurar—Invoked cuando un diseñador hace clic en el botón para configurar la herramienta o el comportamiento. Su configuración lógica debería ser iniciado aquí. Por lo general, esto implica que muestra un cuadro de diálogo para obtener entrada desde el diseñador.
- SaveConfiguration —Invoked cuando la entrada se guarda. La cadena de caracteres que se devuelven desde este método es persistido y vuelva a el comando o el comportamiento de la herramienta cuando se carga.
- LoadConfiguration —Invoked cuando la herramienta inicializa. La última cadena de caracteres que se devuelven desde SaveConfiguration se pasan a este método.
Para ver un ejemplo de una herramienta configurables, supongamos que hemos aplicado un simple UserControl que contiene el código predeterminado, y un cuadro de texto. La Aplicación de Lenguaje de marcado extensible (XAML) para este control puede aparecer de la siguiente manera:
<UserControl x:Class="MyExtension.ConfigurationDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400">
<Grid x:Name="LayoutRoot" Background="Transparent">
<StackPanel Margin="10" Background="Transparent">
<TextBlock Text="Configuration Input:" Margin="0,0,0,5" />
<TextBox Name="InputTextBox" Width="200" />
</StackPanel>
</Grid>
</UserControl>
Este control se puede utilizar en una simple herramienta configurable como sigue:
[Export(typeof(ICommand))]
[DisplayName("Configurable Command")]
[Category("My Tools")]
[Description("Example of a configurable command")]
[DefaultIcon(Path to icon, ex: "/Viewer.Addins;component/Images/Identify.png")]
public class ConfigurableCommand: ICommand, ISupportsConfiguration
{
private ConfigurationDialog configDialog = new ConfigurationDialog();
#region ISupportsConfiguration Members
public void Configure()
{
// When the dialog box opens, it shows the information saved from the last
//time the command was configured.
MapApplication.Current.ShowWindow("Configuration", configDialog);
}
public void LoadConfiguration(string configData)
{
// If the saved configuration is not null, apply it to the configuration dialog box.
configDialog.InputTextBox.Text = configData ?? "";
}
public string SaveConfiguration()
{
// Save the information from the dialog box, and
return configDialog.InputTextBox.Text;
}
#endregion
#region ICommand Members
public bool CanExecute(object parameter)
{
// Return true so that the command can always be executed.
return true;
}
public event EventHandler CanExecuteChanged;
public void Execute(object parameter)
{
// Show the configuration data.
MapApplication.Current.ShowWindow("Configuration", new TextBlock()
{
Text = configDialog.InputTextBox.Text,
TextWrapping = TextWrapping.Wrap,
Margin = new Thickness(30),
MaxWidth = 480
});
}
#endregion
}
Al hacer clic en Agregar herramienta Configurar en el cuadro de diálogo Configurar invoca el método de la herramienta. Con la aplicación dado anteriormente, esta muestra el siguiente cuadro de diálogo:
![]() |
Cuando el visor está desplegado o guardar, el texto en el cuadro de texto se almacena como una cadena de caracteres. Cuando el visor carga, esta cadena de caracteres se pasa al método LoadConfiguration y se utilizan para inicializar la cadena de caracteres de configuración de variable. Ejecutando la command—by haciendo clic en el comando button—displays un cuadro de mensaje que muestra la cadena de caracteres de configuración que se guardó:
![]() |