我在一个TextBox中有一个带有许多Expander的ItemsControl。
TextBox有很长的Text,但是它的文本没有换行,而是在ItemsControl上看到了一个我不想要的水平Scrollbar。我想要文本框上的水平滚动条。我不想要的事件,而不是Textobx中的文本应该总是包装和包装,并有一个垂直滚动条。
我该怎么做?
<Window x:Class="ExpanderTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="768" Width="1024">
<Window.Resources>
<DataTemplate x:Key="NormalTemplate">
<Expander Margin="0" Header="{Binding FileName}" Background="Green">
<TextBox TextWrapping="Wrap" AcceptsReturn="True" IsReadOnly="True" Text="{Binding Content}" Margin="0"/>
</Expander>
</DataTemplate>
</Window.Resources>
<Grid>
<ListBox ItemsSource="{Binding ErrorLogs}" HorizontalContentAlignment="Stretch" ItemTemplate="{DynamicResource NormalTemplate}" />
</Grid>
</Window>
public class MainViewModel : BaseViewModel
{
public MainViewModel()
{
GetErrorLogs();
}
private void GetErrorLogs()
{
for (int i = 0; i < 30; i++)
{
string content = new string('0', 500 * i + 1);
var e = new ErrorLogViewModel { Content = content, FileName = "ErrorLog " + i };
ErrorLogs.Add(e);
}
}
private ObservableCollection<ErrorLogViewModel> _errorLogs = new ObservableCollection<ErrorLogViewModel>();
public ObservableCollection<ErrorLogViewModel> ErrorLogs
{
get { return _errorLogs; }
set
{
_errorLogs = value;
this.RaisePropertyChanged("ErrorLogs");
}
}
}
答案 0 :(得分:0)
ListBox
的默认模板包含ScrollViewer
控件来展示您的商品。此ScrollViewer显示滚动条。
要禁用水平滚动条,请在ListBox
上设置以下属性:
<ListBox ScrollViewer.HorizontalScrollBarVisibility="Disabled" ...