设置列表视图的列不同的路线 [英] Setting different alignments for listview columns

查看:106
本文介绍了设置列表视图的列不同的路线的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我无法画一个ListView与那些左或居中对齐列。我看了一些解决方案,我已经放在这里或其他论坛,但发现他们要么似乎对<一个工作href=\"http://stackoverflow.com/questions/4883182/content-alignment-for-gridviewcolumn-in-the-listview?rq=1\">all列或我不能让他们的工作。

到目前为止,我已经得到了最好是这样的code,但一切都左对齐(我已经把右对齐的测试code)。谁能告诉我,我要去哪里错了吗?

 &LT; ListView控件名称=lsvQuestionsDockPanel.Dock =底&GT;
     &LT; ListView.View&GT;
         &LT;&GridView的GT;
             &LT; GridViewColumn WIDTH =450标题=问题文本&GT;
                 &LT; GridViewColumn.CellTemplate&GT;
                     &LT;&DataTemplate的GT;
                         &LT; TextBlock的文本={结合QuestionText}TextAlignment =左/&GT;
                     &LT; / DataTemplate中&GT;
                 &LT; /GridViewColumn.CellTemplate>
                 &LT; / GridViewColumn&GT;
                 &LT; GridViewColumn WIDTH =200标题=类型&GT;
                    &LT; GridViewColumn.CellTemplate&GT;
                        &LT;&DataTemplate的GT;
                            &LT; TextBlock的文本={结合QuestionType}TextAlignment =右/&GT;
                        &LT; / DataTemplate中&GT;
                    &LT; /GridViewColumn.CellTemplate>
                 &LT; / GridViewColumn&GT;
                 &LT; GridViewColumn WIDTH =100标题=页码&GT;
                     &LT; GridViewColumn.CellTemplate&GT;
                         &LT;&DataTemplate的GT;
                             &LT; TextBlock的文本={结合QuestionPageNumber}TextAlignment =中心/&GT;
                         &LT; / DataTemplate中&GT;
                     &LT; /GridViewColumn.CellTemplate>
                 &LT; / GridViewColumn&GT;
                 &LT; GridViewColumn WIDTH =100标题=订单&GT;
                    &LT; GridViewColumn.CellTemplate&GT;
                        &LT;&DataTemplate的GT;
                            &LT; TextBlock的文本={结合QuestionOrder}TextAlignment =中心/&GT;
                        &LT; / DataTemplate中&GT;
                    &LT; /GridViewColumn.CellTemplate>
                &LT; / GridViewColumn&GT;
            &LT; / GridView的&GT;
        &LT; /ListView.View>
    &LT; /&的ListView GT;


解决方案

ListViewItem的■不要伸展默认的内容,这就是为什么所有的项目出现在左边。收藏此,也将努力:

 &LT; ListView.ItemContainerStyle&GT;
    &LT;风格的TargetType =ListViewItem的&GT;
        &LT; setter属性=Horizo​​ntalContentAlignmentVALUE =弹力/&GT;
    &LT; /样式和GT;
&LT; /ListView.ItemContainerStyle>

I'm having trouble drawing a listview with columns that are left or centre aligned. I've looked at a few of solutions that I've found on here or other forums but they either seem to work for all columns or I can't get them working.

The best I've got so far is this code, but everything is left aligned (I've put the right-aligns in to test the code). Can someone tell me where I'm going wrong please?

<ListView Name="lsvQuestions" DockPanel.Dock="Bottom">                
     <ListView.View>
         <GridView>
             <GridViewColumn Width="450" Header="Question Text">
                 <GridViewColumn.CellTemplate>
                     <DataTemplate>
                         <TextBlock Text="{Binding QuestionText}" TextAlignment="Left"/>
                     </DataTemplate>
                 </GridViewColumn.CellTemplate>
                 </GridViewColumn>
                 <GridViewColumn Width="200" Header="Type">
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding QuestionType}" TextAlignment="Right"/>
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                 </GridViewColumn>
                 <GridViewColumn Width="100" Header="Page Number">
                     <GridViewColumn.CellTemplate>
                         <DataTemplate>
                             <TextBlock Text="{Binding QuestionPageNumber}" TextAlignment="Center"/>
                         </DataTemplate>
                     </GridViewColumn.CellTemplate>
                 </GridViewColumn>
                 <GridViewColumn Width="100" Header="Order">
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding QuestionOrder}" TextAlignment="Center"/>
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>
            </GridView>
        </ListView.View>               
    </ListView>

解决方案

Your ListViewItems don't stretch the content by default and that's why all items appear on the left. Add this and it will work:

<ListView.ItemContainerStyle>
    <Style TargetType="ListViewItem">
        <Setter Property="HorizontalContentAlignment" Value="Stretch" />
    </Style>
</ListView.ItemContainerStyle>

这篇关于设置列表视图的列不同的路线的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆