Динамическое расположение элементов управления WPF, которое зависит от некоторых условий - PullRequest
4 голосов
/ 28 октября 2011

Я использую WPF и у меня проблема с макетом.У меня есть закрепленная панель (не WPF, я просто разместил свой контроль внутри).И когда пользователь хочет закрепить эту панель слева или справа от экрана, мне нужно расположить элементы управления одним способом.Но когда пользователь желает закрепить эту панель сверху или снизу, мне нужно расположить элементы управления по-другому.

Мой вопрос заключается в том, как лучше всего реализовать динамическое расположение элементов управления WPF, которое зависит от некоторых условий.?

Я понимаю, что могу использовать сетку и динамически менять позиции своих элементов управления внутри сетки.Но я не очень доволен этим решением.Я ищу решение без вмешательства кода, только xaml.И в случае, если это невозможно, по крайней мере, с минимальным вмешательством в код.

Заранее спасибо.

Ответы [ 3 ]

5 голосов
/ 28 октября 2011

Вы можете использовать AvalonDock , чтобы получить систему стыковки, очень похожую на визуальную студию.
Это даст вашим пользователям полный контроль над макетом, который они хотят, и это не так сложно реализовать.

Но если вы действительно хотите быстрый способ сделать это, я бы порекомендовал Binding* свойство значения ViewModel, которое изменяется при вводе пользователем (вместе с IValueConverter, если необходимо).

3 голосов
/ 28 октября 2011

Для этого используется функция DataTemplate.

Идея состоит в том, чтобы предоставить несколько DataTemplates, а затем использовать пользовательское дополнение DataTemplateSelector Повернуть вправо DataTemplate на основе критериев.

1 голос
/ 28 октября 2011

Используйте StoryBoard и измените преобразование элементов управления

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...