controlo das fronteiras WPF para estender a largura de listboxitem
Pergunta
Estou tentando definir um DataTemplate para um objeto de negócios no meu aplicativo WPF uma coleção de que está sendo ligado a uma caixa de listagem.
<UserControl.Resources>
<DataTemplate x:Key="ResizedItemsDataTemplate" DataType="{x:Type resizer:ResizeMonitorItem}">
<Border x:Name="bdr" BorderBrush="Blue"
BorderThickness="1"
CornerRadius="2"
Width="auto"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<Grid Margin="2">
<Grid.RowDefinitions>
<RowDefinition Height="14"></RowDefinition>
<RowDefinition Height="14"></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Text="{Binding SaveAsFileName}"></TextBlock>
<TextBlock Grid.Row="1" Text="{Binding ResizedImageFilePath}"></TextBlock>
</Grid>
</Border>
</DataTemplate>
</UserControl.Resources>
<Grid VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Margin="0">
<Border BorderThickness="0,0,0,5" BorderBrush="DarkGray" >
<ListBox x:Name="ListBoxResizeItems" ItemsSource="{Binding Path=ResizeItems}" BorderThickness="0" ItemTemplate="{DynamicResource ResizedItemsDataTemplate}">
</ListBox>
</Border>
</Grid>
Como posso obter o limite definido com x: Name = BDR para abranger toda a largura de cada item caixa de listagem? No momento só abrange o com os TextBlocks dentro dele que não faça preenchimento neccessary a largura total da listboxitem e também variam para cada listboxitem.
Solução
Este é provavelmente mais a ver com os ListBoxItems si não ocupando toda a largura da caixa de listagem. Adicione o atributo HorizontalContentAlignment="Stretch"
ao seu ListBox
e ver se ele estica os itens individuais para preencher a largura.
Outras dicas
trabalhado para fora. O truque consiste em definir o HorizontalContentAlignment = "Stretch" na sua caixa de listagem para fazer seu conteúdo esticar a largura, em vez de ajustar o conteúdo somente.
<ListBox x:Name="ListBoxResizeItems"
HorizontalContentAlignment="Stretch"
ItemsSource="{Binding Path=ResizeItems}"
BorderThickness="0"
ItemTemplate="{DynamicResource ResizedItemsDataTemplate}" >
</ListBox>
Desculpe Matt, só tenho a sua resposta para obtener como eu estava escrevendo este post.
HorizontalContentAlignment é um agradável, solução limpa em comparação com o que eu estava tentando. Obrigado!
Aqui está o que quase funcionou, mas, por vezes, fez uma caixa de diálogo de animação em si mais e mais sempre:
Width="{Binding ActualWidth,
RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListBox}}}"