2015-10-03 4 views
1

В настоящее время я работаю над приложением Windows Phone 8, в котором я использую элемент управления LongListSelector.Содержимое LongListSelector не соответствует родительскому

Я создал ItemTemplate с контейнером Grid и некоторыми TextBlock в качестве детей. Я не знаю, почему, но контейнер Grid не соответствует элементу управления LongListSelector.

Вот код, который я использую. Я использую синий фон для LongListSelector управления и красного для Grid управления для того, чтобы выделить вопрос:

<phone:LongListSelector 
    HorizontalContentAlignment="Stretch" 
    HorizontalAlignment="Stretch" 
    ItemsSource="{Binding Data}" 
    Background="Aqua" 
> 
    <phone:LongListSelector.ItemTemplate> 
    <DataTemplate> 
     <Grid 
     HorizontalAlignment="Stretch" 
     Background="Red" 
     > 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="25" /> 
      <ColumnDefinition Width="75" /> 
      <ColumnDefinition Width="*" /> 
      <ColumnDefinition Width="50" /> 
      <ColumnDefinition Width="47" /> 
      <ColumnDefinition Width="100" /> 
      <ColumnDefinition Width="45" /> 
      <ColumnDefinition Width="35" /> 
     </Grid.ColumnDefinitions> 

     <TextBlock Grid.Column="0" Style="{StaticResource LineStyle}" Text="{Binding Value}" /> 
     <TextBlock Grid.Column="1" Style="{StaticResource LineStyle}" Text="{Binding Value}" /> 
     <TextBlock Grid.Column="2" Style="{StaticResource LineStyle}" Text="{Binding Value}" TextAlignment="Left" TextTrimming="WordEllipsis" /> 
     <TextBlock Grid.Column="3" Style="{StaticResource LineStyle}" Text="{Binding Value}" /> 
     <TextBlock Grid.Column="4" Style="{StaticResource LineStyle}" Text="{Binding Value}" /> 
     <TextBlock Grid.Column="5" Style="{StaticResource LineStyle}" Text="{Binding Value}" /> 
     <TextBlock Grid.Column="6" Style="{StaticResource LineStyle}" Text="{Binding Value}" /> 
     <TextBlock Grid.Column="7" Style="{StaticResource LineStyle}" Text="{Binding Value}" /> 
     </Grid> 
    </DataTemplate> 
    </phone:LongListSelector.ItemTemplate> 
</phone:LongListSelector> 

А вот стиль:

<Style x:Key="LineStyle" TargetType="TextBlock"> 
    <Setter Property="Foreground" Value="Black" /> 
    <Setter Property="FontSize" Value="13" /> 
    <Setter Property="Margin" Value="0, 12" /> 
    <Setter Property="TextAlignment" Value="Center" /> 
    <Setter Property="HorizontalAlignment" Value="Stretch" /> 
</Style> 

А вот скриншот:

enter image description here

Как навязать контейнер Grid (один в красном) в соответствии с его родителями?

Заранее благодарю вас за помощь!

ответ

1

Я думаю, что это связано с вертикальным ScrollBar LongListSelector, который добавляет пробелы справа от элемента управления списком.

Вы можете удалить это правое пространство, добавив следующий фрагмент кода в начало своей страницы.

MyList.Loaded += (sender, e) => { var scrollBar = ((FrameworkElement)VisualTreeHelper.GetChild(MyList, 0)).FindName("VerticalScrollBar") as ScrollBar; scrollBar.Margin = new Thickness(-10, 0, 0, 0); };

+0

Он отлично работает! Thx за вашу помощь! – rolandl