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>
奇怪的是,我的宽度和高度都是'NaN',而我的ActualWidth和ActualHeight看起来很随意。猜猜我需要阅读有关布局系统。不过,我可以证实,当我按照您的建议设定保证金属性时,我会得到不同的结果,谢谢您的提示。 – Eric 2009-11-10 15:39:58