Ich habe diese ComboBox in meinem Silverlight-Usercontrol:Autosizing ComboBox Dropdown-Liste Inhalt in Silverlight
<ComboBox
AutomationProperties.AutomationId="cmbProjects"
Grid.Row="0"
Grid.Column="2"
ItemsSource="{Binding Projects}"
SelectedItem="{Binding SelectedProject, Mode=TwoWay}"
Style="{StaticResource DefaultComboBoxStyle}"
>
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch">
<TextBlock Foreground="DarkRed" AutomationProperties.AutomationId="{Binding Number}" Width="100" Margin="0" Text="{Binding Number, Converter={StaticResource StringFormatter},ConverterParameter='\{0\}'}" />
<TextBlock AutomationProperties.AutomationId="{Binding Description}" Text="{Binding Description, Converter={StaticResource StringFormatter},ConverterParameter='\{0\} '}" />
</StackPanel>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
Die lenghth der meisten Elemente Bestücken der Combobox die Breite des Steuer überschreitet. Wenn ich die Liste dropdown, das Dropdown erweitert, aber nicht vollständig auf die Breite des Inhalts des Elements, was zu Inhalt, der eine horizontale Bildlaufleiste abgeschnitten wird. Dies passiert nicht mit genau derselben Combobox, bei der der Inhalt innerhalb der ursprünglichen Breite des Steuerelements liegt.
In WPF konnte ich einfach die Breite des Objektcontainers auf auto festlegen; In Silverlight führt dies zu einem katastrophalen Fehler. Ich kann das mit einer großen Zahl einstellen, aber die Rolle erscheint immer, ungeachtet der Breite. Außerdem gab es in Silverlight 2 Beta 2 eine Eigenschaft DropDownWidth, mit einer der Optionen "Auto", die ich in RTM nicht sehe.
Ich kann das mit ein bisschen Trickerei umgehen, indem ich hauptsächlich die horizontale Bildlaufleiste ausgeblendet habe und eine Reihe von Zeichen angehängt habe, so dass das Dropdown vollständig erweitert wurde, um den Inhalt des Elements anzuzeigen. Offensichtlich ist dieser Hack nicht ideal. Hat jemand ähnliches Problem erlebt? Gibt es etwas, das ich vermisse, um die Combobox zu zwingen, ohne Scrollbar vollständig zu expandieren?
ib.
Ja, das habe ich getan, und die beste Lösung, die ich mir vorstellen konnte, war diejenige, die ich in meiner ursprünglichen Frage erwähnt habe. Ich kann jedoch direkt von der ComboBox auf die ScrollViewer-Eigenschaften zugreifen, die ich für den Fix benötigte. Ich gebe dir trotzdem eine Stimme> 8P SL3 FTW! –
Siehe meine neuen Bearbeitungen. Ich habe einen Link zu einem anderen Thema gepostet, von dem ich denke, dass es Ihnen helfen könnte. – markti