ComboBoxItem per tutta la larghezza del ComboBox, quando si utilizza SelectedIndex, o la navigazione tastiera?
-
21-09-2019 - |
Domanda
A seguito XAML fa sì che il "My Stuff" essere centrata ComboBox
fino a apro le ComboBox
, quando si allunga in modo corretto.
<ComboBox Height="30" Width="300" HorizontalContentAlignment="Stretch" SelectedIndex="0">
<ComboBoxItem HorizontalContentAlignment="Stretch">
<Border Background="Red">
<TextBlock>My stuff...</TextBlock>
</Border>
</ComboBoxItem>
</ComboBox>
La domanda è: è possibile ottenere il ComboBoxItem
essere allungato anche quando è selezionata tramite SelectedIndex
? Stesso problema o funzionalità, accade se SelectedIndex è intatto (-1) e si seleziona la voce utilizzando la tastiera.
Per risolvere il problema è probabilmente per aprire la casella combinata a livello di codice all'inizio di app, che è piuttosto brutto.
Soluzione
Hai solo bisogno di impostare la larghezza del bordo per la larghezza dinamica del vostro outercontrol:
es.
Width="{Binding ElementName=combox1, Path=ActualWidth}">
Prova questo:
<ComboBox x:Name="combox1" Height="30" Width="300" HorizontalContentAlignment="Stretch"
SelectedIndex="0">
<ComboBoxItem HorizontalContentAlignment="Stretch">
<Border Background="Red" Width="{Binding ElementName=combox1, Path=ActualWidth}">
<TextBlock>My stuff...</TextBlock>
</Border>
</ComboBoxItem>
</ComboBox>
Altri suggerimenti
vedo sì - sono sicuro che c'è un modo intorno a questo. Dipende veramente quello che il risultato finale è che si desidera. Do ognuno dei vostri elementi di dati hanno un colore di sfondo differenza di identificarli o è semplicemente un colore di sfondo per tutta la vostra casella combinata che si sta cercando di ottenere.
Se è quest'ultimo, provate questo -. E forse anche rimuovere il colore selezione evidenziata troppo, altrimenti forse il codice dietro percorso è corretto, in termini di preselezione il vostro primo oggetto, che potrebbero essere un'opzione
Esempio di All over Colore di sfondo:
<ComboBox Background="Red" x:Name="combox2" Height="30" HorizontalContentAlignment="Stretch" SelectedIndex="0">
<ComboBoxItem Background="Red" HorizontalContentAlignment="Stretch">
<TextBlock Background="Red">My stuff...</TextBlock>
</ComboBoxItem>
</ComboBox>
Spero che questo aiuti! :)