2011-09-05 15 views
7

Sto lavorando su un'applicazione desktop C#. Sto usando uno menu strips control in cui ho usato uno drop down button.Come configurare la dimensione di ToolStripDropdownbutton in modo che corrisponda alle dimensioni del pulsante a discesa padre?

Ogni volta che si fa clic sul menu a discesa, visualizza gli elementi, ma la larghezza del menu a discesa sembra essere il problema, è sempre maggiore. Voglio che abbia le stesse dimensioni del pulsante.

Ecco uno screenshot:

Screenshot

Quello che sto lottando per configurare:

  1. voglio la larghezza di discesa per essere la stessa di quella del pulsante.
  2. La freccia del menu a discesa deve essere più grande.
  3. Il pulsante deve essere sinuoso, non piatto, è un oggetto ToolStripDropdownbutton.
+0

Stai parlando WPF, Silverlight, WinForms o ...? – WaltiD

+0

È AutoSize == true? – Blau

+2

Non è un controllo appropriato in una striscia di menu. È stato progettato per essere utilizzato su un ToolStrip. E si dimensiona automaticamente all'altezza della barra degli strumenti. Avrà una dimensione fissa in una striscia di menu poiché non è possibile modificarne l'altezza, è preimpostata dalla dimensione del carattere. –

risposta

1

Purtroppo si sta andando contro il grano per questo controllo, e sarà necessario ricorrere ai propri controlli o di verniciatura personalizzata per ottieni esattamente quello che vuoi.

Dovresti essere in grado di modificare la forma/dimensione della freccia a discesa utilizzando la verniciatura personalizzata. Dovresti essere in grado di limitare le dimensioni del menu a discesa sovrascrivendo il controllo. Tuttavia, poiché il menu a discesa ha spazio per le zecche e le stringhe di scelta rapida, sospetto che potrebbe essere necessario fare più lavoro di quanto non si aspettasse.

Qui ci sono un paio di indicatori che si possono trovare utili: http://connect.microsoft.com/VisualStudio/feedback/details/97456/owner-drawn-toolstripcombobox

Questo suggerisce di utilizzare il ToolStripControlHost (controllo) per ospitare i controlli arbitrari. Con un semplice esempio a: http://alala666888.wordpress.com/2010/07/15/custom-toolstripitem/

http://www.codeproject.com/KB/static/DropDownContainer.aspx Questo progetto (anche se in VB.Net) mostra molti dei problemi con la scrittura i propri controlli per fare la stessa cosa.

C'è anche questo articolo su scrittura ToolStripRenderers: http://www.codeproject.com/KB/menus/CustomToolStripRenderer.aspx

Ecco un altro esempio a base C# di un controllo personalizzato: http://www.codeproject.com/KB/selection/office2003colorpicker.aspx

Problemi correlati