我在用户控件中有一个弹出窗口。弹出窗口使用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>
答案 0 :(得分:2)
执行此操作的C#代码类似于:
textBox1.Width = UserControl.Width;
textBox1.Height = UserControl.Height;
textBox1.Margin = UserControl.Margin;
这里的关键是重置保证金。我知道这可以在WPF中使用,例如,用Window
填充TextBox
。试一试,看看它是否有效。