2
我有這個窗口,如下所述。它基本上是一個位於窗口底部的觸摸屏鍵盤,右側有幾個按鈕,頂部有一個TextBox,用於顯示正在輸入的內容。在運行時,我根據變量更改textBox.Height(並使用換行)。直到一個點(大約600),整個窗口變得更高,以適應更高的文本框,但在此之後,文本框開始向下延伸,而不是鍵盤控件。WPF:管理窗口自動高度並防止重疊控件
有兩個問題: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>
謝謝!