pingvinius
pingvinius

Reputation: 421

Dynamic layout of WPF controls which depends on some condition

I'm using WPF and I have a problem with layouting. I have got a docked panel (non WPF, I just hosted my control inside). And when a user wishes to dock this panel on the left or the right of the screen, I need to layout my controls in one way. But when the user wishes dock this panel on top or bottom, I need to layout my controls in another way.

My question is what is the best way to implement dynamic layout of WPF controls, which depends on some conditions?

I understand, that I can use the grid and dynamically change positions of my controls inside the grid. But I am not really happy with this solution. I'm looking for a solution with no code intervention, xaml only. And in case this is impossible, at least involving minimum intervention in the code.

Thanks in advance.

Upvotes: 4

Views: 1607

Answers (3)

Asad Ullah
Asad Ullah

Reputation: 87

Use StoryBoard and change the transformation of controls

Upvotes: 1

sll
sll

Reputation: 62564

For this purposes DataTemplate feature is.

The idea is to provide multiple DataTemplates and then using your custom inplementation of the DataTemplateSelector rturn right DataTemplate based on criteria.

Upvotes: 3

Louis Kottmann
Louis Kottmann

Reputation: 16648

You could use AvalonDock to get a docking system very much like visual studio's.
This would give your users full control on the layout they desire, and it's not too hard to implement.

But if you really want a quick way to do this, I'd recommand Binding the DockPanel.Dock property to a ViewModel value that changes upon user input (along with an IValueConverter if necessary).

Upvotes: 5

Related Questions