#wpf
#wpf
Вопрос:
У меня есть это окно, описанное ниже. По сути, это сенсорная клавиатура в нижней части окна, пара кнопок справа и текстовое поле вверху, которое показывает, что вводится. Во время выполнения я изменяю текстовое поле.Высота на основе переменной (и используйте перенос). До определенного момента (около 600) все окно становится выше, чтобы вместить более высокое текстовое поле, но после этого текстовое поле начинает расширяться вниз, ЗА элементом управления с клавиатуры.
Два вопроса: 1) Что мешает окну продолжать расти выше (на экране и в окне владельца все еще есть место (мое окно открывается с помощью ShowDialog с назначенным окном владельца), и 2) Что заставляет текстовое поле начинать расти вниз и за другим элементом управления, или, скорее, как мне это предотвратить?
<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>
Спасибо!
Ответ №1:
Похоже, что добавление SizeToContent="WidthAndHeight"
в окно решило обе проблемы.