我有这个窗口,如下所述。它本质上是一个位于窗口底部的触摸屏键盘,右边有几个按钮,顶部有一个TextBox,用于显示正在键入的内容。在运行时,我根据变量(并使用换行)更改textBox.Height。最多一点(大约600),整个窗口变得更高,以适应更高的TextBox,但在此之后,textBox开始向下延伸,紧跟键盘控制。
两个问题:1)是什么让窗口继续变得更高(屏幕上和所有者窗口中仍然有空间(我的窗口是使用ShowDialog打开的,并指定了所有者窗口),以及2)是什么导致TextBox开始成长并落后于其他控件,或者说,我该如何防止这种情况?
<Window x:Class="WFT.Controls.TextEditDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:wft="clr-namespace:WFT.Controls"
WindowStyle="None" Height="Auto" Width="Auto" WindowState="Normal"
FontSize="16pt" AllowsTransparency="True" Background="Transparent">
<wft:CaptionedBox x:Name="capBox" Caption="Edit Text" VerticalAlignment="Center" HorizontalAlignment="Center">
<DockPanel>
<DockPanel DockPanel.Dock="Right">
<wft:TouchButton DockPanel.Dock="Top" Click="Cancel_Click">Cancel</wft:TouchButton>
<StackPanel Orientation="Vertical" VerticalAlignment="Bottom" DockPanel.Dock="Right">
<wft:TouchButton x:Name="okButton" DockPanel.Dock="Bottom" Click="Login_Click">Accept</wft:TouchButton>
</StackPanel>
</DockPanel>
<wft:OnScreenKeyboard x:Name="osk" DockPanel.Dock="Bottom" />
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="auto" />
</Grid.ColumnDefinitions>
<wft:GelBox Grid.Column="0" Visibility="Hidden" />
<TextBox Name="textBox" Height="30" Grid.Column="1"
HorizontalContentAlignment="Left" DockPanel.Dock="Top"
TextWrapping="Wrap"/>
<wft:GelBox x:Name="errorIcon" Grid.Column="2" Visibility="Hidden" />
</Grid>
</DockPanel>
</wft:CaptionedBox>
</Window>
谢谢!
答案 0 :(得分:2)
似乎向窗口添加SizeToContent="WidthAndHeight"
解决了这两个问题。