wpfdockpanelhorizontal-alignment

Prevent elements in the DockPanel from expanding


I have the following code where I want to prevent the first two buttons from expanding when the Expander is opened:

<Grid>
    <DockPanel HorizontalAlignment="Left">
        <Button Content="AAAAA" DockPanel.Dock="Top"/>
        <Button Content="AAAAA" DockPanel.Dock="Top"/>
        <Expander>
            <Button Content="AAAAAAAAAA" DockPanel.Dock="Top"/>
        </Expander>
    </DockPanel>
</Grid>

I would appreciate help on how to do this in a clean way.


Solution

  • This is happening to you because the default value of HorizontalAlignment is Stretch. Therefore, to achieve the result you asked for, you need to do this:

    <Grid>
        <DockPanel HorizontalAlignment="Left">
            <Button Content="AAAAA" DockPanel.Dock="Top" HorizontalAlignment="Left"/>
            <Button Content="AAAAA" DockPanel.Dock="Top" HorizontalAlignment="Left"/>
            <Expander>
                <Button Content="AAAAAAAAAA" DockPanel.Dock="Top"/>
            </Expander>
        </DockPanel>
    </Grid>