2016-03-29 2 views
0

Ich habe eine Rasterspalte, die eine Baumansicht enthält, die beim Drücken eines ToggleButton auf eine Breite von 16 verkleinert werden kann. Die Spalte wird auf Width="Auto" gesetzt, von der ich annahm, dass sie für das Schrumpfverhalten verantwortlich ist.Rasterspalte wird nicht komprimiert, um den Inhalt nach der Breite anzupassen.

Das Problem ist, dass auf der rechten Seite der Spalte ein Gittersplitter ist, so dass der Benutzer die Breite erhöhen/verringern kann, wie sie es für richtig halten. Wenn der Benutzer das tut und dann den ToggleButton drückt, schrumpft der Inhalt der Spalte auf 16, die Spalte selbst jedoch nicht.

Weiß jemand, wie ich sicherstellen kann, dass die Spalte in diesen Szenarien schrumpft? Ich nehme an, es hat damit zu tun, dass die Spaltenbreite von auto auf einen bestimmten Wert geändert wird, aber ich kann mir nicht vorstellen, wie ich das beheben kann, sobald der Inhalt schrumpft. Hier ist mein Code so weit:

<Grid Name="ContentGrid" HorizontalAlignment="Stretch" Grid.Row="1" Grid.Column="0"> 

      <Grid.RowDefinitions> 
       <RowDefinition Height="*"/> 
      </Grid.RowDefinitions> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="Auto" x:Name="TreeColumn"/> 
       <ColumnDefinition Width="Auto"/> 
       <ColumnDefinition Width="*" MinWidth="400" /> 

      </Grid.ColumnDefinitions> 

      <UserControl DockPanel.Dock="Left" Grid.Row="0" Grid.Column="0" Padding="0" x:Name="TreeControl" > 
       <local:TreeViewControl x:Name="mainTreeView" Height="Auto" /> 
      </UserControl> 

      <GridSplitter Grid.Row="0" Grid.Column="1" Margin="0,0,0,0" 
        Width="4" Background="Transparent" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" /> 

      <Grid Name="LandingPageGrid" Grid.Row="0" Grid.Column="2"> 

EDIT: Ich habe versucht, einen Datatrigger auf die Spaltendefinition hinzufügen, aber das hat nicht funktioniert.

<ColumnDefinition Width="Auto" x:Name="TreeColumn"> 
        <ColumnDefinition.Style> 
         <Style> 
          <Style.Triggers> 
           <DataTrigger {Binding Path=IsChecked, ElementName=CollapseIcon}" Value="True"> 
            <Setter Property="ColumnDefinition.Width" Value="Auto"/> 
           </DataTrigger> 
          </Style.Triggers> 
         </Style> 
        </ColumnDefinition.Style> 
       </ColumnDefinition> 
+0

Sie einen Trigger verwenden könnte die Breite auf Auto zu setzen, wenn Ihr Toggle geschieht –

+0

Ist es möglich, ein Element innerhalb des mainTreeView Steuerelement enthalten verweisen? – fyodorfranz

+0

Ich habe bereits versucht, diese zu dem TREECOLUMN, aber die Breite Eigenschaft wurde nicht erkannt: '