开发者

How do I make a Silverlight popup with a TextBox fill its parent?

I have a popup within a user control. The popup uses a TextBox to show a textual preview of data produced by the control.

How do I make the popup size itself to the user control it's inside of? With code as shown below, I find that the text box is sized according to its content, and the popup is sized according to the textbox.

It works fine if I use fixed sizes in my row and column definitions, but I would like to popup to resize itself to match the user control (which in turn matches the browser).

<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>

         <Text开发者_StackOverflow社区Block 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>


The C# code to do this would be something like:

    textBox1.Width = UserControl.Width;
    textBox1.Height = UserControl.Height;
    textBox1.Margin = UserControl.Margin;

The key here is resetting the margin. I know this works in WPF to, say, fill a Window with a TextBox. Give it a try, see if it works.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜