2016-05-24 4 views
1

У меня есть следующий выпадающий, что я показывать при нажатии на кнопкуУдалить отступы на ListViewItem Внутри выпадающей

<Flyout x:Name="saveDiscardMenu" Placement="Bottom" > 
     <Grid > 
      <Grid.RowDefinitions> 
       <RowDefinition /> 
       <RowDefinition /> 
      </Grid.RowDefinitions> 
      <ListView Name="SaveDiscardList" ItemClick="SaveDiscardList_ItemClick" > 
       <ListViewItem Style="{StaticResource ListViewItemPDF}"> 
        <TextBlock x:Uid="SaveChanges" Name="saveChanges" Grid.Row="0" Tapped="saveChanges_Tapped"></TextBlock> 
       </ListViewItem> 
       <ListViewItem Style="{StaticResource ListViewItemPDF}"> 
        <TextBlock x:Uid="DiscardChanges" Name="discardChanges" Grid.Row="1" Margin="0,20,0,0" Tapped="discardChanges_Tapped" ></TextBlock> 
       </ListViewItem> 
      </ListView> 
     </Grid> 
    </Flyout> 

это выглядит как этот enter image description here

и я использую это как мой стиль ListViewItem

<Style TargetType="ListViewItem" x:Key="ListViewItemPDF"> 
    <Setter Property="FontFamily" Value="{ThemeResource ContentControlThemeFontFamily}" /> 
    <Setter Property="FontSize" Value="{ThemeResource ControlContentThemeFontSize}" /> 
    <Setter Property="Background" Value="Transparent"/> 
    <Setter Property="TabNavigation" Value="Local"/> 
    <Setter Property="IsHoldingEnabled" Value="True"/> 
    <Setter Property="Margin" Value="0,0,0,0"/> 
    <Setter Property="HorizontalContentAlignment" Value="Stretch" /> 
    <Setter Property="VerticalContentAlignment" Value="Stretch" /> 
    <Setter Property="Padding" Value="0" /> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="ListViewItem"> 
       <ListViewItemPresenter 
       ContentTransitions="{TemplateBinding ContentTransitions}" 
       Padding="{TemplateBinding Padding}" 
       SelectionCheckMarkVisualEnabled="True" 
       CheckHintBrush="{ThemeResource ListViewItemCheckHintThemeBrush}" 
       CheckSelectingBrush="{ThemeResource ListViewItemCheckSelectingThemeBrush}" 
       CheckBrush="{ThemeResource ListViewItemCheckThemeBrush}" 
       DragBackground="{ThemeResource ListViewItemDragBackgroundThemeBrush}" 
       DragForeground="{ThemeResource ListViewItemDragForegroundThemeBrush}" 
       FocusBorderBrush="{ThemeResource ListViewItemFocusBorderThemeBrush}" 
       PlaceholderBackground="{ThemeResource ListViewItemPlaceholderBackgroundThemeBrush}" 
       PointerOverBackground="{StaticResource MyLightBlue}" 
       SelectedBorderThickness="{ThemeResource ListViewItemCompactSelectedBorderThemeThickness}" 
       SelectedBackground="{ThemeResource ListViewItemSelectedBackgroundThemeBrush}" 
       SelectedForeground="{ThemeResource ListViewItemSelectedForegroundThemeBrush}" 
       SelectedPointerOverBackground="{ThemeResource ListViewItemSelectedPointerOverBackgroundThemeBrush}" 
       SelectedPointerOverBorderBrush="{ThemeResource ListViewItemSelectedPointerOverBorderThemeBrush}" 
       DisabledOpacity="{ThemeResource ListViewItemDisabledThemeOpacity}" 
       DragOpacity="{ThemeResource ListViewItemDragThemeOpacity}" 
       ReorderHintOffset="{ThemeResource ListViewItemReorderHintThemeOffset}" 
       HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" 
       VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" 
       PointerOverBackgroundMargin="1" 
       ContentMargin="4" /> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

Что я хотел бы знать, так это как удалить левое и правое заполнение каждого элемента, похоже, есть, я попытался установить поля и отступы на 0, но это всегда em иметь пространство между сторонами элементов и краем выпадающего окна.

+1

Использование всего списка ListView похоже на тяжелый маршрут переполнения только для двух параметров. Во всяком случае, у FlyoutPresenter есть дополнение, связанное с ресурсом '<Толщина x: Ключ =" FlyoutContentThemePadding "> 12,11, 12,12 'похоже, что вы хотите отредактировать/удалить. –

+0

Хорошо, спасибо, пропустил, что проблема была в Flyout вместо ListView. – Ric

+0

Пока вы нашли средство. Приветствия. :) –

ответ

1

Так как я только что ткнул в моей дурной привычку так много недоброкачественных ответов в комментариях ...

Глядя на структуру default control style template для FlyoutPresenter мы замечаем, что есть обивка привязывается к ресурсу;

<Thickness x:Key="FlyoutContentThemePadding">12,11,12,12</Thickness>

Который часто является виновником, когда вы заметили, что Flyout содержание становится немного сплющенные. Хотя у ListView и других вариантов ItemsControl обычно есть свои шаблоны Paddings/Margins, которые могут мешать, чем больше мы внедряем что-то в дополнительные шаблонные элементы управления, тем больше слоев приходится сортировать, чтобы найти нашего виновника.

Рад помочь. :)

0

Попробуйте переопределить поля и отступы в ItemContainerStyle:

<ListView> 
    <ListView.ItemContainerStyle> 
     <Style TargetType="ListViewItem"> 
      <Setter Property="Margin" Value="0"/> 
      <Setter Property="Padding" Value="0"/> 
      <Setter Property="MinWidth" Value="0"/> 
     </Style> 
    </ListView.ItemContainerStyle> 
</ListView> 

Может быть MinWidth и MinHeight необходимо будет установить 0, а также.

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