У меня есть список, в который я хочу разместить элементы макета. Я изо всех сил пытаюсь получить стекную панель только в том же объеме, что и родительские объекты. То есть, у меня есть текстовый блок в моем списке, который может содержать много информации, и я хочу, чтобы он обертывал или обрезал (пока не определил, что еще) в зависимости от ширины родителя.StackPanel - Ограничить ширину родительского списка ListBox
Элемент списка - это DataTemplate, однако для целей этого сообщения я скопировал его как listboxitem внутри ListBox.
Все это содержится на странице.
<Grid>
<ListBox Name="ListBoxManageMedia" HorizontalContentAlignment="Stretch" Margin="10,52,10,41" ScrollViewer.VerticalScrollBarVisibility="Visible">
<ListBoxItem Height="70" Name="ListBoxItem" PreviewMouseDown="ListBoxItem_OnMouseDown">
<StackPanel Height="65" Orientation="Horizontal">
<StackPanel Name="VideoImage2" Height="65" Width="102"/>
<StackPanel Name="VideoData2" HorizontalAlignment="Stretch" Height="65">
<TextBlock Text="Title" FontWeight="Bold" FontSize="18"></TextBlock>
<TextBlock TextTrimming="None" Text="long test text about something or nothing to demonstrate the long description issues I'm having. I want this to wraplong test text about something or nothing to demonstrate the long description issues I'm having. I want this to wrap" TextWrapping="Wrap" FontSize="13" Margin="0,0,0,0"/>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Cat" FontSize="12" FontStyle="Italic"/>
<Border Width="50"></Border>
<TextBlock Text="Status" FontSize="12"/>
</StackPanel>
</StackPanel>
</StackPanel>
</ListBoxItem>
</ListBox>
</Grid>
, как я могу получить текстовый блок (один с очень длинным текстом) только быть столь же широко, как и сам ListBox? (что делает «прикрепление» к краям страницы тонким)
Width of child control should match width of parent container Я уже пробовал этот ответ так, что это безуспешно, и многим другим нравится.
EDIT:
Даже в виде сетки мой длинный текст просто работает на от страницы. Что я здесь делаю неправильно?
<ListBoxItem Height="70" HorizontalContentAlignment="Stretch" Margin="0,0,10,0" Name="ListBoxItem" PreviewMouseDown="ListBoxItem_OnMouseDown">
<Grid Height="65" Margin="0,0,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50*"/>
<ColumnDefinition Width="330*"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="23"></RowDefinition>
<RowDefinition Height="23"/>
<RowDefinition Height="19"/>
</Grid.RowDefinitions>
<TextBlock Grid.Column="1" Grid.Row="0" Text="Title" FontWeight="Bold" FontSize="18"></TextBlock>
<TextBlock Grid.Column="1" Grid.Row="1" DockPanel.Dock="Top" TextTrimming="CharacterEllipsis" Text="long test text about something or nothing to demonstrate the long description issues I'm having. I want this to wraplong test text about something or nothing to demonstrate the long description issues I'm having. I want this to wrap" TextWrapping="NoWrap" FontSize="13" Margin="0,0,0,0"/>
<StackPanel Grid.Column="1" Grid.Row="2" DockPanel.Dock="Top" Orientation="Horizontal">
<TextBlock Text="Cat" FontSize="12" FontStyle="Italic"/>
<Border Width="50"></Border>
<TextBlock Text="Status" FontSize="12"/>
</StackPanel>
</Grid>
</ListBoxItem>
Вам действительно нужна 'StackPanel' для компоновки элементов? Будет ли «грид» работать? – ChrisF
как я типа Я сейчас пытаюсь это сделать, без особого успеха – Damo