设置列表视图的列不同的路线 [英] Setting different alignments for listview columns
问题描述
我无法画一个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属性=HorizontalContentAlignmentVALUE =弹力/&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 ListViewItem
s 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屋!