我正在寻找1)发生了什么,以及2)如何解决问题。
问题
如果ListBox项目高度高于2521,即使将背景明确设置为其他内容,它似乎也会将背景更改为黑色。
如何重现
获取下面的示例XAML文件,并在xaml.cs文件中添加以下内容:
DataContext = new List<int>() { 1 };
将TextBlock的高度更改为2522或更高。
示例代码不是我遇到问题的地方,但是这是一个演示错误的简单示例。我不打算使用尺寸为2522+的TextBlock:)
示例XAML文件
<Grid x:Name="LayoutRoot" Background="Brown">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<phone:Pivot x:Name="pivot" Title="{Binding name}" Grid.Row="1" Foreground="White" Margin="10,0,0,0">
<phone:PivotItem x:Name="mainPivot" Header="menu" Margin="0,0,20,0">
<ListBox ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Background="White">
<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
<TextBlock Height="2521" Text="some data" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}" FontSize="22" Foreground="Purple"/>
</StackPanel>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</phone:PivotItem>
</phone:Pivot>
</Grid>
</phone:PhoneApplicationPage>
说明
有些人对我的用户界面表示担忧。上面的代码是示例,而不是我的实际用户界面。没有性能问题,ListBox也不迟缓。除了背景改变颜色外,一切都按预期工作。
答案 0 :(得分:1)
在WP7 TextBlocks had a height limit of 2048x2048中。我不确定这是否已在WP8中修复,但看起来你现在正在遇到同样的问题。考虑将文本拆分为小于2048像素的块或使用像ScrollableTextBlock那样为您执行此操作的块。
答案 1 :(得分:0)
不确定“为什么”,但在“什么”看来,网格是运行黑色背景的网格。我把网格取出来,它的行为......
<phone:Pivot x:Name="pivot" Title="{Binding name}" Grid.Row="1" Foreground="White" Margin="10,0,0,0">
<phone:PivotItem x:Name="mainPivot" Header="menu" Margin="0,0,20,0" >
<ListBox ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28" Background="White">
<TextBlock Height="2530" Text="some data" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}" FontSize="22" Foreground="Purple"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</phone:PivotItem>
这对你有用吗?
答案 2 :(得分:0)
您可以将minWidth设置为列表框。这可能对你有帮助。
<Grid x:Name="LayoutRoot" Background="Brown">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<phone:Pivot x:Name="pivot" Title="{Binding name}" Grid.Row="1" Foreground="White" Margin="10,0,0,0">
<phone:PivotItem x:Name="mainPivot" Header="menu" Margin="0,0,20,0">
<ListBox ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Background="White">
<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
<TextBlock Height="2521" Text="some data" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}" FontSize="22" Foreground="Purple"/>
</StackPanel>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</phone:PivotItem>
</phone:Pivot>
</Grid>