2009-11-09 36 views
3

我有一個用戶控件內彈出。該彈出窗口使用文本框來顯示控件生成的數據的文本預覽。如何使用TextBox填充其父項的Silverlight彈出窗口?

如何將彈出窗口大小本身製作爲用戶控件的內部?使用如下所示的代碼,我發現文本框的大小根據其內容而定,彈出窗口的大小根據文本框來確定。

它工作正常,如果我在我的行和列定義中使用固定大小,但我想要彈出調整自身以匹配用戶控件(它反過來匹配瀏覽器)。

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

回答

2

的C#代碼來執行,這將是這樣的:

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

這裏的關鍵是復位保證金。我知道這在WPF中起作用,比如說用TextBox填充Window。試一試,看看它是否有效。

+0

奇怪的是,我的寬度和高度都是'NaN',而我的ActualWidth和ActualHeight看起來很隨意。猜猜我需要閱讀有關佈局系統。不過,我可以證實,當我按照您的建議設定保證金屬性時,我會得到不同的結果,謝謝您的提示。 – Eric 2009-11-10 15:39:58

相關問題