2
아래에 설명 된이 창이 있습니다. 그것은 본질적으로 윈도우 하단에있는 터치 스크린 키보드이며, 오른쪽에 두 개의 버튼이 있으며, 입력되는 내용을 보여주는 상단의 TextBox가 있습니다. 런타임에는 변수를 기반으로 textBox.Height를 변경하고 랩을 사용합니다. 최대 점 (약 600)까지, 전체 창은 키가 큰 TextBox를 수용하기 위해 커지지 만 이후에는 텍스트 상자가 키보드 컨트롤 바로 아래로 확장되기 시작합니다.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>
고맙습니다!