我有个问题.我需要在ScrollViewer中托管带有控件的网格,以防止文本框在UI处被截断或折叠为零.另外,当用户更改窗口宽度时,我希望扩展文本框的内容.我将Window的内容设置为以下代码
<DockPanel>
<TreeView DockPanel.Dock="Left" Width="150"/>
<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBlock Text="Name"
Margin="5"
VerticalAlignment="Center"/>
<TextBox Grid.Column="1"
Text="Some Name"
Margin="5"
VerticalAlignment="Center"
MinWidth="200"/>
</Grid>
</ScrollViewer>
</DockPanel>
Run Code Online (Sandbox Code Playgroud)
一切正常,但是当用户在TextBox中键入非常长的文本时,它将被展开并显示水平滚动.是否有任何简单的方法来限制TextBox的最大宽度,并允许仅在用户更改窗口大小时才展开它.
我的视觉树中有一个文本框如下..
Window
Grid
ListBox
ItemTemplate
DataTemplate
Grid
Grid
Textbox... <TextBox Height="Auto"
Text="{Binding Path=LyricsForDisplay}"
MinHeight="50"
MaxHeight="400"
Visibility="Visible"
VerticalScrollBarVisibility="Auto"
IsReadOnly="True"
AllowDrop="False"
TextWrapping="WrapWithOverflow">
</TextBox>
Run Code Online (Sandbox Code Playgroud)
当长文本添加到绑定变量(LyricsForDisplay)时,列表框中的所有项目都会展开它们的文本框/网格宽度,以便在使用出现的底部的滚动条时可以看到整个字符串...
我想做的是让它如此框/网格只有在用户拉伸窗口时才会调整大小..不是在输入长文本时(它可能只是环绕......)
有谁知道如何获得功能?