2014-06-05 3 views
0

Я работаю над silverlight используя C#. Мне нужно отображать комбо-элементы в полосе прокрутки.Как добавить scroollbar в поле со списком в C#

Моей попытка сделать это:

  TextBlock txtblkName = generateTextBlock(); 
      ComboBox cb = new ComboBox(); 
      ScrollViewer scrollViewer = new ScrollViewer(); 

      cb.Width = 45; 
      cb.Height = 20; 
      foreach (String item in param.Component.Attributes.Items) 
      cb.ItemsSource = param.Component.Attributes.Items; 
      scrollViewer.Content = cb; 
      scrollViewer.HorizontalAlignment = HorizontalAlignment.Center; 
      scrollViewer.VerticalAlignment = VerticalAlignment.Center; 
      scrollViewer.ScrollToVerticalOffset(3); 
      cb.SelectionChanged += (o, e) => 
      { 
       txtblkName.Text = cb.SelectedValue.ToString() + " " + param.Unit; 
      }; 
      cb.SelectedIndex = param.Component.Attributes.Selected != -1 ? param.Component.Attributes.Selected : 0; 
      Grid.SetColumn(scrollViewer, 1); 
      childGrid.Children.Add(scrollViewer); 

что приводит к свитку над комбинированным окном .like это:

enter image description here

Не на его элемент, отображаемый на скроллинге. Может ли кто-нибудь помочь мне создать полосу прокрутки только на элементах, отображаемых не во всех списках?

ответ

1

Вам не нужно ScrollViewer здесь, если вам нужна прокрутка для вашей comboboxItems установите это свойство MaxDropDownHeight некоторого значение

 ComboBox cb = new ComboBox(); 
     List<string> items = new List<string>(); 
     items.Add("1"); 
     items.Add("2"); 
     items.Add("3"); 
     items.Add("5"); 
     items.Add("7"); 
     items.Add("8"); 
     cb.ItemsSource = items; 
     cb.MaxDropDownHeight = 20; 
     childGrid.Children.Add(cb); 
+0

Yaah он работал. Большое спасибо Sajeentharan – Sss

+0

Вы, кажется, серебряный эксперт. Не могли бы вы сообщить мне, возможно ли разрешение этого скриста или нет? http://stackoverflow.com/questions/24062877/how-to-get-the-scrollviewer-to-scroll-after-static-set-index-containing-list/24063044?noredirect=1#comment37106250_24063044 ЭТО НЕ ОТВЕЧАЕТ ПРАВИЛЬНО; – Sss

+0

@ user234839 ok проверит и обновит, кстати, не эксперт – Sajeetharan