Ho un ComboBox che ho impostato DrawMode = DrawMode.OwnerDrawFixed. Quindi gestisco l'evento OnDrawItem e tutto funziona perfettamente. Tuttavia, sembra molto diverso da un ComboBox standard perché il mio non sembra essere reso utilizzando VisualStyles. Devo fare qualcosa per abilitare specificamente il rendering di VisualStyle per il controllo del mio proprietario disegnato? Ho provato SetWindowTheme sul mio controllo, ma non sono sicuro di quale classe tema inviare. Qualsiasi aiuto sarebbe molto apprezzato. Grazie!OwnerDraw ComboBox with VisualStyles
6
A
risposta
6
Il lato negativo del disegno proprietario è che quando lo accendi, il proprietario (tu) deve disegnare tutto. Sei quasi completamente da solo.
Se si desiderano stili di visualizzazione, è necessario chiamare direttamente le API di VisualStyles per fare ciò che si desidera. Se vuoi mostrare stati selezionati, focalizzati, abilitati/disabilitati, devi scrivere codice per gestirli tutti.
Questa non è una risposta diretta per i problemi della casella combinata, ma come un esempio di come utilizzare VisualStyles, ecco come ho utilizzato VisualStyles in un TreeView disegnato dal proprietario per disegnare l'icona Più/Meno:
// Draw Expand (plus/minus) icon if required
if (ShowPlusMinus && e.Node.Nodes.Count > 0)
{
// Use the VisualStyles renderer to use the proper OS-defined glyphs
Rectangle expandRect = new Rectangle(iconLeft-1, midY - 7, 16, 16);
VisualStyleElement element = (e.Node.IsExpanded) ? VisualStyleElement.TreeView.Glyph.Opened
: VisualStyleElement.TreeView.Glyph.Closed;
VisualStyleRenderer renderer = new VisualStyleRenderer(element);
renderer.DrawBackground(e.Graphics, expandRect);
}
Problemi correlati
- 1. Perseguitata da C# OwnerDraw TreeView
- 2. Colore del bordo dei controlli utilizzando VisualStyles
- 3. Stato ListBox DrawItem HotLight in modalità OwnerDraw?
- 4. Combobox borderstyle
- 5. Combobox Vaadin
- 6. ComboBox Behavior
- 7. ComboBox modificabile
- 8. Aspetto Combobox
- 9. Equivalenza di "With ... End With" in C#?
- 10. C# ComboBox GotFocus
- 11. ComboBox SelectedValue non mostra
- 12. caso ComboBox discesa sensitive
- 13. JavaFX combobox css styling
- 14. ComboBox di CheckBox?
- 15. WPF ComboBox SelectedItem
- 16. ComboBox SelectedItem vs SelectedValue
- 17. colonna combobox datagrid wpf
- 18. Styling Elementi ComboBox WPF
- 19. associazione combobox wpf
- 20. WPF ComboBox MaxDropDownItems
- 21. WPF Binding Combobox
- 22. Silverlight ComboBox e SelectedItem
- 23. ComboBox WPF predefinito ControlTemplate
- 24. FireFox e AjaxControlToolKit Combobox
- 25. BeanFieldGroup con ComboBox?
- 26. Semantic ui combobox
- 27. XAML ReadOnly ComboBox
- 28. WPF ComboBox modificabile
- 29. WPF: Nullable ComboBox
- 30. JavaFX - ComboBox filtrato
Ho provato a utilizzare VisualStyleRenderer per disegnare la parte, ma l'unico VisualStyleElement che riesco a trovare è il ComboBox.Button. Ne indagherò ancora un po ', o semplicemente arrenderò e renderli tutti ineguagliati. :) –