內容我有這個組合框在我的Silverlight用戶控件:自動調整大小組合框下拉菜單在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>
的大部分填充ComboBox中的項目的lenghth超出控制的寬度。當我下拉列表時,下拉菜單會展開,但不會完全展示到項目內容的寬度,從而導致剪裁水平滾動條的內容。對於內容在控件的原始寬度內的完全相同的組合框,不會發生這種情況。
在WPF中,我可以簡單地將item容器的寬度設置爲auto;在Silverlight中這會導致一個災難性的錯誤。我可以設置爲一個巨大的數字,但滾動仍然出現,無論寬度如何。另外,在Silverlight 2 beta 2中,有一個DropDownWidth屬性,其中一個選項是「Auto」,這在RTM中是看不到的。
我可以繞過這一點小費,主要是隱藏水平滾動條和附加一串字符,以便下拉菜單完全展開以顯示項目內容。很顯然,這種破解並不理想。有沒有人遇到類似的問題?有沒有什麼我失蹤,迫使組合框沒有滾動條充分展開?
ib。
是的,我已經這樣做了,我能想到的最好的解決方案就是我在原始問題中提到的那個,但是我可以直接從ComboBox訪問我需要的修復所需的ScrollViewer屬性。無論如何,我會給你一票> 8P SL3 FTW! – 2009-04-16 22:29:37