none
ListView控件内DataTemplate如何设置,才能使各显示项列表的长度按屏幕自适应? RRS feed

  • 问题

  • 如题:

    ListView控件内DataTemplate如何设置,才能使各显示项列表的长度按屏幕自适应?

    而不是直接用Weight和Hight,将宽、高设置死了。

    如图,老是长度不一样,

    代码如下,看看哪些地方不对:

            <ListView x:Name="lv_Hunting" Margin="7 0 7 0">
                <ListView.ItemTemplate>
                    <DataTemplate>
    
                        <!--狩猎材料列表单个列表项面板布局-->
                        <Grid x:Name="huntingListGird" Height="72" Margin="0 0 10 0">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="72"/>
                                <ColumnDefinition Width="*"/>
                            </Grid.ColumnDefinitions>
                            <!--<StackPanel Orientation="Horizontal" Margin="0 0 0 0">-->
                            <!--放置Image控件的Grid布局-->
                            <Grid Grid.Column="0" Margin="0 0 0 0">
                                <!--显示材料.gif图片的Image控件-->
                                <Image gif:AnimationBehavior.SourceUri="{Binding Path=Uri_HuntingImg}"  x:Name="gifImg2_Hunting" Margin="0,0,0,0" >
                                </Image>
                            </Grid>
                            <!--放置材料介绍明细的Grid布局-->
                            <Grid Grid.Column="1" Margin="0,0,0,0" Background="Yellow">
                                <!--狩猎材料资料介绍(技能等级、材料名称)面板-->
                                <StackPanel Margin="0 0 0 0"  >
    
                                    <Grid Margin="0 0 0 0">
                                        <StackPanel Orientation="Horizontal" Background="Blue"  HorizontalAlignment="Stretch"  Margin="0 0 0 0">
                                            <TextBlock Text="名字:" HorizontalAlignment="Left"/>
                                            <TextBlock Text="{Binding Path=Description_Name}"/>
                                        </StackPanel>
                                    </Grid>
    
                                    <Grid Margin="0 0 0 0">
                                        <StackPanel Orientation="Horizontal"  Background="Red" HorizontalAlignment="Stretch"  Margin="0 0 0 0">
                                            <TextBlock Text="技能等级:" HorizontalAlignment="Left" Margin="0 0 0 0"/>
                                            <TextBlock Text="{Binding Path=Description_SkillLev}"/>
                                        </StackPanel>
                                    </Grid>
    
                                    <Grid Margin="0 0 0 0">
    
                                        <StackPanel Orientation="Horizontal"  Background="Green"  HorizontalAlignment="Stretch"  Margin="0 0 0 0">
                                            <TextBlock Text="地点:" HorizontalAlignment="Left"/>
                                            <TextBlock  Text="{Binding Path=Description_CollectionPoint}" TextWrapping="Wrap" Margin="0 0 0 0"/>
                                        </StackPanel>
                                    </Grid>
    
                                    <!--项面板画界线-->
                                    <StackPanel  Background="White"  HorizontalAlignment="Stretch"  Margin="0 0 0 0">
                                        <Rectangle  Stroke="AliceBlue" Height="2"/>
                                    </StackPanel>
                                </StackPanel>
                            </Grid>
                        </Grid>
    
    
    
    
    
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>



    • 已编辑 learn WP 2017年2月24日 9:00
    2017年2月24日 8:48

答案

  • 这样吗

    <ListView x:Name="lv_Hunting" Margin="7 0 7 0">
                        <ListView.Resources>
                            <Style TargetType="ListViewItem">
                                <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
                            </Style>
                        </ListView.Resources>

    • 已标记为答案 learn WP 2017年2月24日 11:06
    2017年2月24日 10:45

全部回复

  • 这样吗

    <ListView x:Name="lv_Hunting" Margin="7 0 7 0">
                        <ListView.Resources>
                            <Style TargetType="ListViewItem">
                                <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
                            </Style>
                        </ListView.Resources>

    • 已标记为答案 learn WP 2017年2月24日 11:06
    2017年2月24日 10:45
  • 是的,我编译出来后,显示不对齐

    加了这个属性设置器后,可以了,谢谢



    • 已编辑 learn WP 2017年2月26日 2:31
    2017年2月24日 10:46