Wie kann ich verhindern, dass ein Benutzer die Größe GridViewColumns mit einem ListView-Steuerelement ändern?
Antworten
Zu viele Anzeigen?Für diejenigen, die eine schnellere und einfachere Antwort suchen.
Setzen Sie IsEnabled im ColumnHeaderContainerStyle auf False. Dadurch wird der Benutzer an der Größenänderung gehindert.
Zum Beispiel so:
<GridView.ColumnHeaderContainerStyle>
<Style TargetType="{x:Type GridViewColumnHeader}">
<Setter Property="IsEnabled" Value="False"/>
</Style>
</GridView.ColumnHeaderContainerStyle>
Wenn Sie die deaktivierte ausgegraute Farbe beheben möchten, fügen Sie einen Auslöser für die Eigenschaft IsEnabled hinzu und beheben Sie, was Sie brauchen.
<GridView.ColumnHeaderContainerStyle>
<Style TargetType="{x:Type GridViewColumnHeader}">
<Setter Property="IsEnabled" Value="False"/>
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="TextElement.Foreground" Value="Black"/>
</Trigger>
</Style.Triggers>
</Style>
</GridView.ColumnHeaderContainerStyle>
Diese Antwort ist vielleicht nicht so elegant wie die der anderen, aber in meinem Fall brauchte ich nur eine schnelle Lösung.
Ich hoffe, das hilft jemandem.
Die Antwort von Darkonekt ist gut, aber es könnte besser sein, die IsHitTestVisible
auf false anstelle von IsEnabled
. Dies hat den Vorteil, dass die Überschriften nicht ausgegraut werden.
<GridView.ColumnHeaderContainerStyle>
<Style BasedOn="{StaticResource {x:Type GridViewColumnHeader}}" TargetType="{x:Type GridViewColumnHeader}">
<Setter Property="IsHitTestVisible" Value="False"/>
</Style>
</GridView.ColumnHeaderContainerStyle>
Ich habe eine Lösung gefunden, und vielleicht hilft sie ja auch mal jemand anderem ;)
müssen Sie das ControlTemplate des GridViewColumnHeader überschreiben (die Standardvorlage ist ici ) und entfernen Sie die PART_HeaderGripper aus der Vorlage, um eine Größenänderung Ihrer Spalten zu verhindern.
gibt es eine weitere Lösung, die mit der Unterklassifizierung von GridViewColumn beschrieben wird ici . für Darstellungszwecke bevorzuge ich jedoch reine Xaml-Lösungen
Ich konnte etwas Ähnliches mit den Anweisungen in diesem Beitrag machen
http://blogs.msdn.com/b/atc_avalon_team/archive/2006/04/11/573037.aspx
Ich war nicht in der Lage, eine vollständige XAML-Lösung zu verwenden, da ich aufgrund der Dynamik alles in meinem Code nachgebaut habe. Funktionierte großartig auf den ersten Versuch.