Как я могу установить размер всплывающего окна для его содержимого? - PullRequest
3 голосов
/ 09 декабря 2011

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

<Popup 
      Name="popup1" 
      StaysOpen="False" 
      PlacementTarget="{Binding ElementName=myButton}" 
      Placement="Custom" 
      PopupAnimation="Fade" 
      AllowsTransparency="True">

Ответы [ 3 ]

6 голосов
/ 09 декабря 2011

A Всплывающее окно уже имеет размеры в соответствии с содержимым.

По умолчанию размер всплывающего окна автоматически изменяется в соответствии с его содержимым. Когда происходит автоматическое изменение размера,некоторые растровые эффекты могут быть скрыты, потому что размер области экрана, заданный по умолчанию для содержимого всплывающего окна, не обеспечивает достаточно места для отображения растровых эффектов.

Всплывающее содержимое также может быть скрыто при установке RenderTransform.на содержание.В этом сценарии некоторое содержимое может быть скрыто, если содержимое преобразованного всплывающего окна выходит за пределы области исходного всплывающего окна.Если для растрового эффекта или преобразования требуется больше места, вы можете задать поле вокруг содержимого всплывающего окна, чтобы предоставить больше области для элемента управления.

Возможно, содержание вашего Popup имеет проблемы с размером из-завы ограничиваете рост в вашем макете контейнера?Таким образом, ваш размер всплывающего окна имеет соответствующий размер, но, например, Grid может иметь фиксированную ширину.

0 голосов
/ 09 декабря 2011

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

Это просто туманное старое воспоминание, но оно может стать хорошей отправной точкой для поиска более конкретного ответа.

0 голосов
/ 09 декабря 2011

Вы пробовали Width = "Auto"?

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