2014-06-05 1 views
0

나는 실버 라이트에서 C#을 사용하여 작업 중입니다. 콤보 항목을 스크롤 막대에 표시해야합니다. 이 작업을 수행하는C#에서 콤보 상자 항목에 scroollbar를 추가하는 방법 #

내 시도는 다음과 같습니다

enter image description here

를하지 스크롤에 표시 그것의 항목이 .Like 콤보 박스로 스크롤 결과

  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); 

. 일부 콤보 상자에 표시되지 않는 항목에만 스크롤 막대를 만드는 데 도움을 줄 수 있습니까?

답변

1

당신은 당신이 Yaah이이 일을 어떤 값

 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

에 MaxDropDownHeight이 속성 을 설정하여 comboboxItems 위해 스크롤을해야하는 경우, 여기에서 ScrollViewer를 필요 없어요. 고마워요 Sajeentharan – Sss

+0

당신은 실버 라이트 전문가 보인다. thi squestion의 해결책이 가능한지 알려주시겠습니까? http://stackoverflow.com/questions/24062877/how-to-get-the-scrollviewer-to-scroll-after-statically-set-index-containing-list/24063044?noredirect=1#comment37106250_24063044 아직 답변되지 않았습니다. 바르게; – Sss

+0

@ user234839 확인하고 업데이트합니다. 전문가가 아닙니다. – Sajeetharan

관련 문제