Как видно из названия, ScrollViewer.HorizontalScrollBarVisibility="Disabled"
отключает горизонтальную прокрутку. Если вы сделаете это, но ваши ListBoxItems слишком длинные, они будут обрезаны. StackPanel не будет увеличиваться или уменьшаться, чтобы поместиться в ListBox, и он не будет «оборачивать» ваши элементы, чтобы поместиться в ListBox, если он слишком узкий, даже если вы добавите TextWrapping
в TextBlock. Это очень упрямо. Я думаю, что ваша главная проблема в том, что StackPanel.
Вместо StackPanel, попробуйте использовать Grid с двумя столбцами, определенными так:
<ListViewItem >
<CheckBox Name="chkAlbanien" Tag="55">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Image Grid.Column="0" Source="images/flag_albania.png" Height="30"/>
<TextBlock Grid.Column="1"
TextWrapping="Wrap"
Text="Albanien" Margin="5,0,0,0"/>
</Grid>
</CheckBox>
</ListViewItem>
Auto
будет сжимать столбцы изображения, а *
даст тексту все оставшееся пространство. Затем добавьте TextWrapping
к вашему текстовому блоку, если он все еще слишком длинный.
Отредактировано: добавлен более полный пример кода и немного изменен мой ответ.