Получить ссылку на View, когда Content возвращает ViewModel? - PullRequest
0 голосов
/ 06 января 2012

У меня есть пользовательский элемент управления, который пытается автоматически изменить размер.Проблема в том, что свойство .Content автоматически устанавливается за кулисами в ViewModel.Мне нужен элемент управления, чтобы иметь доступ к реальному представлению, чтобы увидеть, какая ширина и высота установлены.

Как получить дескриптор для View, если для .Content установлено значение ViewModel?

1 Ответ

0 голосов
/ 06 января 2012

WPF контролирует уже автоматически размер в зависимости от типа панели, в которой он находится.

Например, если ваш элемент управления находится в Grid, он автоматически изменит свой размер, чтобы растянуть и заполнить все пространстводоступно для него.Если ваш элемент управления находится в StackPanel, он автоматически изменит свой размер, чтобы занять то пространство, которое ему нужно, или, другими словами, любое пространство, которое занимает его Контент.

Так что, если вы хотите, чтобы ваш элемент управления былтого же размера, что и содержимое, не устанавливайте на нем размер и поместите UserControl на панель, которая не растягивает дочерние элементы, например StackPanel

<StackPanel>
    <local:MyUserControl />
</StackPanel>

илиоберните его Content в элемент управления, который не растягивает его детей.

<UserControl ....>
    <UserControl.Template>
        <ControlTemplate>
            <StackPanel>
                <ContentPresenter />
            </StackPanel>
        </ControlTemplate>
    </UserControl.Template>
</UserControl>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...