2011-04-12 6 views
0

Windows Phone 7 응용 프로그램의 xaml 페이지에 ListBox가 있습니다. 빈 상태로 시작한 다음 웹 서비스에서 검색되면 항목으로 채 웁니다. 지금까지 모든 것이 잘 작동합니다 - 항목이 목록에 나타나고 모두 괜찮아 보입니다. 내가 가지고있는 문제는 내가 에뮬레이터에서 아래로 스크롤 목록을 드래그하려고 할 때입니다. 아래로 스크롤 할 수 있지만 마우스 버튼을 놓으면 목록이 위쪽으로 튀어 오릅니다. 전혀 스크롤하지 않았습니다. 이런 식으로 행동하는 이유에 대한 통찰력?W7P ListBox가 에뮬레이터에서 스크롤되지 않습니다.

<Grid x:Name="ContentPanel" Grid.Row="2" Margin="0,0,0,0" Canvas.ZIndex="0"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition Height="Auto"/> <!-- EDIT: the problem was "Auto" here should have been "*" --> 
    </Grid.RowDefinitions> 

    <!-- removed other element for brevity --> 

    <ListBox Name="InfoBoardListBox" Grid.Row="1" SelectionChanged="InfoBoardListBox_SelectionChanged" 
       Margin="0,0,0,0" FontSize="26.667" /> 
</Grid> 

그리고 목록을 채우는 방법

foreach (InfoBoard entry in boards.Values) { 
     item = new ListBoxItem(); 
     item.Content = entry.Name; 
     item.Name = entry.Id.ToString(); //used to tell which entry was clicked 
     InfoBoardListBox.Items.Add(item); 
    } 

답변

3

* 대신 Auto에 두 번째 행의 높이를 설정하는 시도를; ListBox가 사용 가능한 공간과 비교하여 생각하는 크기와 관련이 있다고 생각합니다.

+0

문제가 해결 된 것 같습니다. 나는''Auto'와'*'가해야 할 일들에 대해 일종의 정보를 찾았다. 지금까지 행운이 없었다. 이 예제에서 'Auto'는 초기 페이지로드 중에 한 번 크기를 알아 내라고 말하고 '*'는 무언가가 변경 될 때마다 그것을 알아 낸다 고합니다. –

+0

RowDefinition의 컨텍스트에서 ** Auto **는 행의 내용을 높이지만 높게 만들지는 않습니다. '별표'는 사용 가능한 공간의 비율입니다 (즉, 고정 높이 또는 자동 높이 행 이후). 두 행 모두'*'로 설정되어 있다면, 각각의 행은 높이의 절반을 가질 것입니다. 여기에 몇 가지 문서가 있습니다 : http://msdn.microsoft.com/en-us/library/system.windows.gridunittype.aspx –

+0

그런 의미가 있습니다. ListBox 높이는 내용이 없으므로 약 0으로 설정되고 항목이 추가되거나 화면 아래쪽에서 크기가 조정될 때 크기가 조정되지 않습니다. 후자의 경우, 모든 항목을 표시하기에 충분한 공간 (일부는 화면에 표시되지 않음)이있을 수 있습니다. * 분명히 내가 원하는 동작입니다 : 화면의 나머지 높이를 정확히 차지하는 목록 상자. –

관련 문제