如何在XAML windows 8中以行和列显示数据
在metro风格的windows 8应用程序中,如何使用与此类似的xaml显示数据(https://dl.dropbox.com/u/59251888/img.png)形象。是否可以使用ListBox、ListView、GrdView 是的,但您需要对其进行样式设置,使其看起来像一个数据网格。(假设您是基于分配给此问题的标记在XAML中开发的)。诀窍是制作一个数据模板,该模板使用具有适当宽度、对齐方式等的列的网格 我也做过类似的事情——使用ListView。可以对其进行修改,使背景只显示在单元格中,而不是行中——我已经这样做了。希望这有助于: XAML:如何在XAML windows 8中以行和列显示数据,xaml,windows-8,Xaml,Windows 8,在metro风格的windows 8应用程序中,如何使用与此类似的xaml显示数据(https://dl.dropbox.com/u/59251888/img.png)形象。是否可以使用ListBox、ListView、GrdView 是的,但您需要对其进行样式设置,使其看起来像一个数据网格。(假设您是基于分配给此问题的标记在XAML中开发的)。诀窍是制作一个数据模板,该模板使用具有适当宽度、对齐方式等的列的网格 我也做过类似的事情——使用ListView。可以对其进行修改,使背景只显示在单元格
谢谢您的回复。实际上,每行显示一个项目,在不同的列中有不同的属性,我想每行显示3个项目,每个项目在不同的列中。。我可以这样做吗?我想您可以使用GridView,将其ItemsPanel设置为WrapGrid,属性为Orientation=“Horizontal”和MaximumRowsOrColumns=“3”。然后你会设计它的样式,使它看起来像是分开的行和列。非常感谢克里希纳,我使用了你提到的WrapGrid,它完全按照我想要的那样工作。。谢谢这是一个很好的回答,谢谢!当你把鼠标放在listview上时,你知道如何避免它变成灰色背景吗?谢谢,我认为您可能需要覆盖ListViewItem模板并修复其中的VisualStates。或至少覆盖一个或多个默认ListViewItem*笔刷。
<ListView
VerticalAlignment="Top"
Margin="0,5"
ItemsSource="{Binding HighestExpensesAlternatingList}"
ItemTemplate="{StaticResource HighestExpensesTemplate}"
BorderBrush="#19FFFFFF" BorderThickness="1,0,0,0"
SelectionMode="None" IsItemClickEnabled="False"
ScrollViewer.VerticalScrollBarVisibility="Hidden"
ScrollViewer.HorizontalScrollBarVisibility="Hidden"
ItemContainerStyle="{StaticResource SimpleListViewItemStyle}"
IsHitTestVisible="False"/>
<DataTemplate x:Key="HighestExpensesTemplate">
<Grid Width="500" VerticalAlignment="Center" Margin="5,0"
Background="{Binding AlternatingIndexBrush}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="120" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="150" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Margin="5" TextWrapping="NoWrap"
Style="{StaticResource BasicTextStyle}"
VerticalAlignment="Center"
Text="{Binding Item.DateString}" />
<TextBlock Grid.Column="1" Margin="5" TextWrapping="NoWrap"
Style="{StaticResource BasicTextStyle}"
VerticalAlignment="Center"
Text="{Binding Item.Description}" />
<TextBlock Grid.Column="2" Margin="5" TextWrapping="NoWrap"
Style="{StaticResource BasicTextStyle}"
VerticalAlignment="Center"
Text="{Binding Item.AmountStringCurrencyFormat}"
HorizontalAlignment="Right"/>
</Grid>
</DataTemplate>
<Style x:Key="SimpleListViewItemStyle" TargetType="ListViewItem">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="TabNavigation" Value="Local"/>
<Setter Property="IsHoldingEnabled" Value="False"/>
<Setter Property="IsDoubleTapEnabled" Value="False"/>
<Setter Property="IsRightTapEnabled" Value="False" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListViewItem">
<Border BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}"
Margin="{TemplateBinding Margin}">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal"/>
<VisualState x:Name="Pressed">
<Storyboard>
<PointerDownThemeAnimation TargetName="Container"/>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Grid x:Name="Container">
<ContentPresenter x:Name="contentPresenter"
ContentTemplate="{TemplateBinding ContentTemplate}"
ContentTransitions="{TemplateBinding ContentTransitions}"
Content="{TemplateBinding Content}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
Margin="{TemplateBinding Padding}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>