He hecho esto antes - Solo hago que la ventana sea lo suficientemente grande como para caber en todos los paneles. En tiempo de ejecución, oculto todo menos el panel predeterminado y establezco sus ubicaciones iguales. Además, configuré el tamaño de la ventana principal (o control) para que sea del tamaño que deseo de modo que un panel se ajuste bien en la ventana. Su método de selección (hacer clic en las imágenes) parece estar bien, ya que podría detectar en qué imagen se hace clic y mostrar/ocultar los paneles correspondientes.
Es un poco torpe, pero en algunos casos funciona muy bien. Esto funciona muy bien para aplicaciones en las que desea ver todos los paneles en tiempo de diseño, pero solo ve un panel en tiempo de ejecución. Por lo tanto, el uso de las herramientas de localización integradas de Visual Studio continuará funcionando.
Aquí hay un código de muestra que he copiado de un proyecto. Esta es en realidad una ventana de Configuración, donde selecciono paneles para ver desde un TreeView.
Width = 640; // set the size of the form, as it's larger in Designer mode
Height = 480;
simulationPanel.Visible = false; // hide all panels, and set them to be top-left
simulationPanel.Top = 0; // relative to their parent control
simulationPanel.Left = 0;
delaysPanel.Visible = false;
delaysPanel.Top = 0;
delaysPanel.Left = 0;
occurrencesPanel.Visible = false;
occurrencesPanel.Top = 0;
occurrencesPanel.Left = 0;
languagePanel.Visible = false;
languagePanel.Top = 0;
languagePanel.Left = 0;
Luego, para seleccionar un panel, es posible hacer algo como lo siguiente:
private void ShowPanel(string name)
{
// its easy to just hide all panels again if one is currently visible
simulationPanel.Visible = false;
delaysPanel.Visible = false;
occurrencesPanel.Visible = false;
languagePanel.Visible = false;
if (name == "language")
{
languagePanel.Visible = true;
} else if (name = "delays")
{
delaysPanel.Visible = true;
}
... etc
}
He hecho algo similar para esto, solo heredé del panel para cada control. También creé una extensión de método simple para llevar al frente, y dock completo con el control padre pasado como argumento. – scottm