Laden...

WPF: Panel ausblenden und Platz freigeben

Erstellt von 1nf1n1ty vor 14 Jahren Letzter Beitrag vor 14 Jahren 3.602 Views
1nf1n1ty Themenstarter:in
286 Beiträge seit 2007
vor 14 Jahren
WPF: Panel ausblenden und Platz freigeben

Hallo zusammen,

Ich habe mein WPF Window mit Hilfe verschiedenster Dockpanels gegliedert. Nun möchte ich diese Panels bei Bedarf ausblenden. Dabei sollen die noch aktiven Panels entsprechend gestreckt werden. Leider scheitere ich da weil ich scheinbar irgendentwas vergessen habe. Bei einem Dockpanel (in diesen befinden sich wiederum Stackpanels und auf denen dann die eigentlichen Controls) habe ich testweise die Eigenschaft Visibility auf Collapsed gesetzt. Das Panel is dann zwar unsichtbar, aber der Platz wurde nicht freigegeben.

Was mache ich da verkehrt??

Viele Grüße
1nf1n1ty

€: Zusätzlich sollte ich wohl noch erwähnen, dass alle 3 Dockpanels oben angedockt werden. (DockPanel.Dock="Top")

U
1.578 Beiträge seit 2009
vor 14 Jahren

koennen wir mal das xaml sehen ? collapsed muesste es normalerweise frei geben - muss noch ein anderes problem vor liegen

1nf1n1ty Themenstarter:in
286 Beiträge seit 2007
vor 14 Jahren

     <DockPanel Name="dp_info">
         <StackPanel Name="sp_info" HorizontalAlignment="Left" VerticalAlignment="Top" DockPanel.Dock="Top" Orientation="Horizontal">
            <Grid>
               <GroupBox HorizontalAlignment="Left" Margin="8,40,0,0" VerticalAlignment="Top" Width="384" Height="120" Header="Kundeninformationen">
                   ... labels, textboxen etc.
               </GroupBox>
               <GroupBox Margin="400,40,8,0" VerticalAlignment="Top" Height="120" Header="Veranstaltungsinformationen">
                  ...
               </GroupBox>
            </Grid>
         </StackPanel>
      </DockPanel>

      <DockPanel Name="dp_workflow">
         <StackPanel Name="sp_workflow" HorizontalAlignment="Left" VerticalAlignment="Top" DockPanel.Dock="Top" Orientation="Horizontal">
            <Grid>
               <GroupBox Margin="8,160,8,0" VerticalAlignment="Top" Height="60" Header="Verlauf" >
                  ...
               </GroupBox>
            </Grid>
         </StackPanel>
      </DockPanel>

      
private void Button_Click(object sender, RoutedEventArgs e)
{
         dp_info.Visibility = Visibility.Collapsed;
}

U
1.578 Beiträge seit 2009
vor 14 Jahren

du setzt die visibility des gesamten dockpanels (<DockPanel Name="dp_info">) - in was stecken die dockpanel ?

1.433 Beiträge seit 2006
vor 14 Jahren

Das PopUpControl wäre vielleicht noch eine Hilfe. Das hast eien Eigenschaft die festlegt ob es gezeigt werden soll oder nicht. Eventuell kannst Du dass für Dein Design brauchen, für das Ausblenden und Einblenden.

Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt

1nf1n1ty Themenstarter:in
286 Beiträge seit 2007
vor 14 Jahren

Das Problem war scheinbar, dass ich zuviele Dockpanels benutzt habe. Habe jetzt alle Stackpanels in einem Dockpanel und kann diese dann entsprechend ausblenden.

Viele Grüße
1nf1n1ty