简体   繁体   English

列表框项目未填充屏幕WP7的整个宽度

[英]Listbox items not filling the entire width of screen WP7

I am trying to create a listbox containing items with the following template 我正在尝试创建一个包含以下模板的项目的列表框

 <ListBox x:Name="moviesactedin" Style="{StaticResource ListBoxStyle2}">
       <ListBox.ItemTemplate>
            <DataTemplate>
                <Border BorderThickness="0,0,0,1" BorderBrush="Black" Margin="0,0,0,5">
                   <StackPanel Orientation="Horizontal" Margin="0,0,0,5" HorizontalAlignment="Stretch">
                         <Image Source="{Binding Image}" Stretch="None" Margin="0,0,5,5" />
                         <StackPanel Orientation="Vertical" Margin="10,0,0,0" VerticalAlignment="Top">
                        <TextBlock Text="{Binding Title}" Foreground="Black" FontWeight="Bold"/>
                        <TextBlock Text="{Binding Director}" Foreground="Black"/>
                        <TextBlock Text="{Binding ReleaseDate}" Foreground="Black"/>
                  </StackPanel>
                      <Image Source="/Images/icon_arrow.png" HorizontalAlignment="Right" VerticalAlignment="Center"/>
                   </StackPanel>

              </Border>
        </DataTemplate>
</ListBox.ItemTemplate>

and the listbox style 和列表框样式

<Style x:Key="ListBoxStyle2" TargetType="ListBox">
    <Setter Property="Background" Value="Transparent"/>
    <Setter Property="Foreground" Value="{StaticResource PhoneForegroundBrush}"/>
    <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled"/>
    <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
    <Setter Property="BorderThickness" Value="0"/>
    <Setter Property="BorderBrush" Value="Transparent"/>
    <Setter Property="Padding" Value="0"/>
    <Setter Property="HorizontalAlignment" Value="Stretch" />
    <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
    <Setter Property="Template">
        <Setter.Value>
              <ControlTemplate TargetType="ListBox">
                        <ItemsPresenter  HorizontalAlignment="Stretch" 
                                            VerticalAlignment="Stretch"/>
               </ControlTemplate>
         </Setter.Value>
    </Setter>
</Style>

the first image will be at the left side, the stackPanel with three textblocks will be in the middle and the second image will be at the right hand side(at the end). 第一个图像位于左侧,带有三个文本块的stackPanel位于中间,第二个图像位于右侧(末尾)。

The problem is that the listbox item is not filling up the entire width of the screen so that i will have the last image to the end of the width of the screen. 问题是列表框项没有填满屏幕的整个宽度,因此我将在屏幕宽度的末尾拥有最后一张图像。

Any help? 有什么帮助吗?

This worked 这工作

<ListBox.ItemContainerStyle>
         <Style TargetType="ListBoxItem">
               <Setter Property="Template">
                      <Setter.Value>
                           <ControlTemplate>
                                   <ContentPresenter
                                        HorizontalAlignment="Stretch" 
                                       VerticalAlignment="Stretch"
                                   />
                          </ControlTemplate>
                      </Setter.Value>
               </Setter>
           </Style>
</ListBox.ItemContainerStyle>

The items fills the entire length of the screen. 这些项目将填满整个屏幕。 Thanks Fabrice for the clue. 感谢Fabrice提供的线索。

Can you try with that? 你可以尝试一下吗?

<Style x:Key="ListBoxItemStyle" TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="HorizontalAlignment" Value="Stretch"/></Style>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM