Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to anchor controls in WPF?

Tags:

c#

.net

anchor

wpf

I have a a TreeView that fills the top part of the application, but since the number of items in the TreeView changes, my Apply button changes its position vertically. Is there a way to anchor it to the bottom part of the window, so it's always on the right bottom part of the window, i.e. 10x10 distance from the right bottom edge.

like image 372
Joan Venge Avatar asked Mar 04 '11 01:03

Joan Venge


3 Answers

You can either set the HorizontalAlignment and VerticalAlignment on the TreeView or Button (I cannot tell which control you are trying to anchor), or you could place the control inside a DockPanel.

To space the control away from others use the Margin.

Margin="0 0 10 10"

will give you the margin only on the right and bottom

I hope this makes it a bit clearer:

<Window>   
  <DockPanel VerticalAlignment="Stretch">
    <TreeView DockPanel.Dock="Top" />
    <Button DockPanel.Dock="Bottom" Margin="0 0 10 10" />   
  </DockPanel>
</Window>
like image 109
benPearce Avatar answered Nov 05 '22 16:11

benPearce


To achieve anchoring, Set following properties:

  • Width="auto"
  • Height="auto"
  • VerticalAlignment="Stretch"
  • HorizontalAlignment="Stretch"
  • Set margins as needed.

Example:

    <TabControl

        Name="tabControl1"

        HorizontalAlignment="Stretch" 

        Margin="40,40,40,40"  

        Width="auto" 

        Height="auto" 

        VerticalAlignment="Stretch">
like image 39
Aditya Bokade Avatar answered Nov 05 '22 18:11

Aditya Bokade


I think you need this in the XAML of your button:

HorizontalAlignment="Right" VerticalAlignment="Bottom"
like image 7
Tiago Ribeiro Avatar answered Nov 05 '22 18:11

Tiago Ribeiro