2014-04-29 8 views
3

유니버설 앱 프로젝트의 Windows Phone 8.1 용 ComboBox를 만들고 있는데, 항상 전체 화면에 모든 항목을 표시하고 싶습니다. 윈도우 폰 8에 나는 내가 옵션을 찾을 수없는 윈도우 폰 8.1 콤보 상자에서,ComboBox의 모든 항목을 전체 화면으로 표시하는 방법은 무엇입니까?

ListPicker.ExpansionMode = ExpansionMode.FullScreenOnly; 

을하지만.

이 문제를 어떻게 해결할 수 있습니까?

감사합니다.

+0

ComboBox.MaxDropDownHeight 속성을 시도 했습니까? – Sajeetharan

+0

''작동하지만 작동하지 않습니다. 어떤 생각? –

답변

9

WP8.1의 ComboBox Control은 전체 화면 또는 드롭 다운 목록에 항목을 표시하기로 결정합니다. 상품이 > 5 인 경우 전체 화면에 표시됩니다. OtherWise, 드롭 다운 목록에 표시됩니다. 우리는 코드로 변경할 수 없습니다. (당신이 콤보 3 개 항목이) 다음 { 또한 내용 "" 아 파크 콤보 상자에 3 개 항목을 추가} 경우

+0

감사합니다. 당신의 대답이 저를 도왔습니다. –

0

는이 핸들러 추가

private void DoSelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    ComboBox cb = (sender as ComboBox); 
    if (cb.SelectedIndex > -1) 
    { 
     string s = (cb.SelectedValue as ComboBoxItem).Content as string; 
     if (s == " ") 
     { 
      cb.SelectedIndex = cb.GetLastIndex(); 
     } 
    } 
    cb.SetLastIndex(cb.SelectedIndex); 
} 

public static class Extensions 
{ 
    private static Dictionary<ComboBox, int> _lastIndex = new Dictionary<ComboBox, int>(); 
    public static int GetLastIndex(this ComboBox me) 
    { 
     return _lastIndex.ContainsKey(me) ? _lastIndex[me] : -1; 
    } 
    public static void SetLastIndex(this ComboBox me, int NewValue) 
    { 
     if (_lastIndex.ContainsKey(me)) 
      _lastIndex[me] = NewValue; 
     else 
      _lastIndex.Add(me,NewValue); 
    } 
} 
1

늦은 대답을하지만 도움이 되었으면 좋겠 다른 사람.

기본적으로 콤보 상자는 항목 수가 5 개를 초과하는 경우에만 긴 목록을 표시합니다. 콤보 박스의 전체 화면을 표시해야하는 경우 콤보 상자 대신 버튼에 listpicker 플라이 아웃을 연결할 수 있습니다. 그건 내가 생각하기에 이상적인 해결책 일 것이다. 그리고 longlist의 모든 구현을 거의 만족합니다.

관련 문제