2013-04-23 3 views
1

Итак, у меня возникли проблемы с интервалом в ListView, вот мой код:расстояние ListView в XAML

  <ListView Width="300" ItemsSource="{Binding ChosenDepartment.HoursList}" Grid.Row="1" Grid.Column="1" Margin="100,0,0,0" IsItemClickEnabled="False" SelectionMode="None"> 
      <ListView.ItemTemplate> 
       <DataTemplate> 
        <StackPanel Orientation="Horizontal"> 
         <TextBlock Width="125" Text="{Binding Day}" Style="{StaticResource BasicTextStyle}" FontWeight="Bold"/> 
         <TextBlock Width="160" Text="{Binding Time}" Style="{StaticResource BasicTextStyle}"/> 
        </StackPanel> 
       </DataTemplate> 
      </ListView.ItemTemplate> 
      <ListView.ItemContainerStyle> 
       <Style TargetType="ListViewItem"> 
        <Setter Property="Padding" Value="0"/> 
        <Setter Property="Margin" Value="0"/> 
       </Style> 
      </ListView.ItemContainerStyle> 
     </ListView> 

Независимо от того, что я делаю, есть расстояние под StackPanel между ListItems. Достаточно места для двух строк текста. Фактически, если текст в TextBlock обертывается на две строки, он отлично заполняет ListViewItem.

Я могу отрегулировать разницу и Padding на всех TextBlocks, и он ничего не делает. Единственный способ повысить высоту элемента ListView - это если у меня было свойство высоты, добавленное к ItemContainerStyle. Если я жестко код Height, он влияет на него, но, конечно, я не хочу, чтобы жесткий код Height.

+0

Что такое 'BasicTextStyle'? – mydogisbox

+0

Это должен быть слегка измененный пользовательский текстовый стиль, который я использую во всем приложении. Тем не менее, я полностью удалил стиль, чтобы убедиться, что это что-то изменит, а это не так. – s3kt0r

+0

Вы пытались использовать [Snoop] (http://snoopwpf.codeplex.com)? Это тоже замечательно, что значительно облегчает поиск места, где происходит дополнительный бит (среди прочего). –

ответ

2

В ListViewItems есть жестко закодированные поля внутри их шаблона, чтобы разместить границы и визуальные указания, которые добавляются при их выборе (щелкнув правой кнопкой мыши или прокручивая их пальцем).

Если вы хотите, чтобы удалить их, необходимо изменить свой шаблон в смесь: нажмите правой кнопкой на ListView выберите Редактировать Additionnal Шаблоны> Правка Сформирован Item Контейнер (ItemContainerStyle)> Редактировать копию ... и изменить шаблон.

2

Ответ Джереми привел меня по правильному пути, но в конце концов я обнаружил еще один элемент управления под названием ItemsControl, который поставляется без пуха ListView и был именно тем, что я искал.

+0

спасибо за это! Я использую это во вложенном списке и просто хочу показать список, без излишеств. ItemsControl был ПЕРФЕКТ, чтобы избавиться от постороннего интервала, СПАСИБО! – SelAromDotNet

Смежные вопросы