GridSplitter를 사용하여 크기가 큰 패널에 TextBox 컨트롤을 배치하려고합니다.Non-Expanding TextBox/ScrollViewer
내가 처음 경험 한 문제는 entred 된 텍스트가 길어지면서 TextBox의 크기가 자동으로 조정된다는 점이었습니다. 이 사이트에서 TextBox를 테두리로 묶은 다음 TextBox의 너비를 테두리의 너비 (아래 XAML에 표시됨)로 설정하는 솔루션을 발견했습니다. 이것이 효과가있는 것으로 보입니다. 나는 그것이 내가 도움을 구하는 이슈의 원인 인 경우 이것을 언급한다.
현재 문제는 TextBox의 크기가 조정되지만 패널의 크기를 줄이면 바로 ScrollViewer가 시작된다는 것입니다. ScrollViewer는 TextBox의 크기가 최소 너비 (이전이 아닌)로 내려갈 때 시작됩니다.
현재 사용중인 전체 XAML은 아래에 있습니다.
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="NonExpandingTextBoxDemo.MainWindow" Height="350" Title="MainWindow" Width="525">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<ScrollViewer Grid.Column="0" Grid.Row="0" HorizontalAlignment="Stretch" HorizontalScrollBarVisibility="Auto" VerticalAlignment="Stretch" VerticalScrollBarVisibility="Auto">
<Border HorizontalAlignment="Stretch" Margin="20, 20, 20, 20" MinWidth="100" VerticalAlignment="Center">
<TextBox Width="{Binding Mode=OneWay, Path=ActualWidth, RelativeSource={RelativeSource AncestorType={x:Type Border}, Mode=FindAncestor}}" />
</Border>
</ScrollViewer>
<GridSplitter Grid.Column="1" Grid.Row="0" ResizeBehavior="PreviousAndNext" VerticalAlignment="Stretch" Width="3" />
<TextBlock Grid.Column="2" Grid.Row="0" HorizontalAlignment="Center" Text="Right Panel" VerticalAlignment="Center" />
</Grid>
</Window>
질문은 무엇입니까? 몇 가지 시도했지만 아무것도 작동하는 것 같습니다.
이 문제에 대한 안내에 미리 감사드립니다.
설명해 주셔서 감사합니다. 내 생각 프로세스는 TextBox 요소의 최소 너비 (또는 ScrollViewer에있는 내용)가 최소 너비 200을 갖지만 사용자가 패널의 너비를 100으로 지정하는 것과 같은 것입니다. 이 경우 전체 영역을 표시 할 수 있기를 원합니다 (스크롤을 통해 수행 할 수도 있음). 나는 최소한 패널의 최소 너비를 내용의 최소 너비로 설정할 수 있다고 생각한다. 그러나 이것이 결국 나타날 모양은 상당히 진행되고 있으므로 공간을 최대한 활용하고 싶습니다. –