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);
}
문제가 해결 된 것 같습니다. 나는''Auto'와'*'가해야 할 일들에 대해 일종의 정보를 찾았다. 지금까지 행운이 없었다. 이 예제에서 'Auto'는 초기 페이지로드 중에 한 번 크기를 알아 내라고 말하고 '*'는 무언가가 변경 될 때마다 그것을 알아 낸다 고합니다. –
RowDefinition의 컨텍스트에서 ** Auto **는 행의 내용을 높이지만 높게 만들지는 않습니다. '별표'는 사용 가능한 공간의 비율입니다 (즉, 고정 높이 또는 자동 높이 행 이후). 두 행 모두'*'로 설정되어 있다면, 각각의 행은 높이의 절반을 가질 것입니다. 여기에 몇 가지 문서가 있습니다 : http://msdn.microsoft.com/en-us/library/system.windows.gridunittype.aspx –
그런 의미가 있습니다. ListBox 높이는 내용이 없으므로 약 0으로 설정되고 항목이 추가되거나 화면 아래쪽에서 크기가 조정될 때 크기가 조정되지 않습니다. 후자의 경우, 모든 항목을 표시하기에 충분한 공간 (일부는 화면에 표시되지 않음)이있을 수 있습니다. * 분명히 내가 원하는 동작입니다 : 화면의 나머지 높이를 정확히 차지하는 목록 상자. –