У меня есть всплывающее окно в пользовательском элементе управления. Всплывающее окно использует TextBox для отображения текстового предварительного просмотра данных, созданных элементом управления.Как создать всплывающее окно Silverlight с TextBox заполнить его родительский?
Как сделать сам размер всплывающего окна пользовательским элементом управления внутри? С кодом, как показано ниже, я обнаружил, что текстовое поле имеет размер в соответствии с его содержимым, а всплывающее окно - в соответствии с текстовым полем.
Он отлично работает, если я использую фиксированные размеры в определениях строк и столбцов, но я хотел бы всплывать, чтобы изменить его размер, чтобы он соответствовал пользовательскому элементу управления (который, в свою очередь, соответствует браузеру).
<UserControl
<!-- usual stuff here -->
>
<Grid>
<!-- layout for the user control here -->
<!-- and after that my popup: -->
<Popup Name="MyPopup">
<Border BorderBrush="Black" BorderThickness="2" >
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="22"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Grid.Row="0" Text="Preview:" Margin="5" ></TextBlock>
<TextBox
Grid.Row="1"
Name="MyTextBox"
IsReadOnly="True"
HorizontalScrollBarVisibility="Visible"
VerticalScrollBarVisibility="Visible"
TextWrapping="Wrap"
Margin="5"
>
</TextBox>
</Grid>
</Border>
</Popup>
</Grid></UserControl>
Странно, моя ширина и высота - это «NaN», а мои ActualWidth и ActualHeight кажутся случайными. Думаю, мне нужно прочитать о макетной системе. Однако я могу подтвердить, что получаю разные результаты, когда устанавливаю свойство Margin, как вы предлагаете, спасибо за этот совет. – Eric