2017-01-07 2 views
0

Ich habe einausblenden headercontent von der Spitze eines Listview

<DockPanel> 
    <!-- Header --> 
    <Button DockPanel.Dock="Top" Command="{Binding CreateAccountCommand}" Margin="{StaticResource ControlMargin}" Style="{StaticResource IconButtonStyle}"> 
     <StackPanel> 
      <MahAppsIconPacks:PackIconFontAwesome Kind="Pencil" /> 
      <TextBlock>create account</TextBlock> 
     </StackPanel> 
    </Button> 

    <!-- Accounts list --> 
    <ListView SelectionMode="Single" SelectedIndex="0" ItemsSource="{Binding AccountViewModels}" SelectedItem="{Binding SelectedItem}" Style="{StaticResource AccountsList}"> 
     <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <LocalViews:AccountView Margin="{StaticResource ControlMargin}" /> 
      </DataTemplate> 
     </ItemsControl.ItemTemplate> 
    </ListView> 
</DockPanel> 

Es ist mit einem schwarzen Separator es auf der Oberseite macht, was ziemlich hässlich. Wie verstecke ich es? Ich habe versucht, verschiedene Stile einzustellen, aber es gibt keine ListViewColumnHeader.

http://i.imgur.com/0UnW1QW.png

Im Live-Baum zeigt es als Inhalt des Headers ... nicht Separator, meine schlecht. Wie entferne ich es?

enter image description here

Dies funktioniert nicht:

<Style TargetType="ListView" x:Key="AccountsList" BasedOn="{StaticResource {x:Type ListView}}"> 
     <Style.Resources> 
      <Style TargetType="HeaderedContentControl"> 
       <Setter Property="Visibility" Value="Collapsed" /> 
      </Style> 
     </Style.Resources> 
    </Style> 
+0

Sie auf die visuellen Debug-Toolbar Overlays Studio beziehen, sind auf WPF-Anwendungen? Wenn ja, können Sie es deaktivieren, wie in dieser Frage: http://stackoverflow.com/questions/36618494/disable-visual-studio-2015-extra-debug-option –

+0

Nein, nicht wahr. Ich werde einen Screenshot in einer Sekunde hinzufügen. –

Antwort

0

Sie eine der Ansicht Fähigkeiten von ListView Verwenden? (z. B. GridView usw., die ich glaube, ist der Standard. In diesem Fall ist das Trennzeichen wahrscheinlich der Header-Abschnitt, aber leer). Wenn Sie nicht sind, versuchen Sie es einfach mit ListBox. Es hat keinen Header als Standard.

Edit: Ich habe gerade diese Theorie überprüft, aber es scheint, ich kann Ihr Problem überhaupt nicht reproduzieren. Hier ist eine List-Box, wie Sie Ihren Code (und ein Listview für eine gute Maßnahme) haben:

<Window.Resources> 
    <x:Array x:Key="Items" Type="sys:String"> 
     <sys:String>Item 1</sys:String> 
     <sys:String>Item 2</sys:String> 
     <sys:String>Item 3</sys:String> 
    </x:Array> 
</Window.Resources> 
<StackPanel Margin="20"> 
    <TextBlock Text="ListBox:"/> 
    <ListBox Height="100" ItemsSource="{StaticResource Items}" BorderBrush="Transparent"> 
     <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <TextBlock Text="{Binding}"/> 
      </DataTemplate> 
     </ItemsControl.ItemTemplate> 
    </ListBox> 
    <TextBlock Text="ListView:"/> 
    <ListView Height="100" ItemsSource="{StaticResource Items}" BorderBrush="Transparent"> 
     <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <TextBlock Text="{Binding}"/> 
      </DataTemplate> 
     </ItemsControl.ItemTemplate> 
    </ListView> 
</StackPanel> 

Es können die verschiedenen Themen auf Windows 7 jedoch sein, Ich verwende Windows 10.

enter image description here

+0

Nein, ich benutze 'ListView.View' nicht –

+0

Ich habe die Frage mit meinem kompletten Code und einem Screenshot aktualisiert. –

+1

Haben Sie versucht, eine Listbox zu verwenden? Wie die andere Antwort erwähnt, hat das mit dem Styling des listView-Headers zu tun. Header ist eine Funktion von ListView, die Sie nicht verwenden. Sie können also auch eine ListBox verwenden. – Joe

0

Ich glaube, das ist ein Ergebnis der MahApps Vorlage. Es ist nicht das Standardverhalten eines Standard-WPF-ListView.

Sie müssten die MahApps-Vorlage anpassen, um sie loszuwerden. Etwas wie folgt aus:

<Style TargetType="{x:Type ListView}" BasedOn="{StaticResource {x:Type ListView}}"> 
    <Setter Property="BorderThickness" Value="0" /> 
</Style> 

Der MahApps Code und Ressourcen sind alle Open Source. Ich denke, das besondere Problem Sie wird hier durch die BorderThickness Setter getrieben haben:

https://github.com/MahApps/MahApps.Metro/blob/develop/src/MahApps.Metro/MahApps.Metro/Styles/Controls.ListView.xaml

<Style x:Key="MetroListView" TargetType="{x:Type ListView}"> 
    <Setter Property="OverridesDefaultStyle" Value="true" /> 
    <Setter Property="AlternationCount" Value="2" /> 
    <Setter Property="Background" Value="{DynamicResource WhiteBrush}" /> 
    <Setter Property="BorderBrush" Value="{DynamicResource BlackBrush}" /> 
    <Setter Property="BorderThickness" Value="0 1 0 0" /> 
Verwandte Themen