以下XAML页面标记
<Page
x:Class="XXXX.TestPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid>
<Pivot Title="Title0">
<PivotItem Header="Header0">
<ListView SelectionMode="Multiple">
<ListViewItem>
<TextBlock
Text="0123456 0123456 0123456 01234 0123456"
TextWrapping="WrapWholeWords"
FontSize="24"/>
</ListViewItem>
</ListView>
</PivotItem>
</Pivot>
</Grid>
</Page>
导致奇怪的文字切割错误(两个数字被切断,红色箭头是我的):
在Windows Phone 8.1模拟器(WVGA,512MB,4英寸,480x800)下测试。
必需条件:ListView with SelectionMode="Multiple"
和Pivot
控件。这意味着如果我将SelectionMode更改为其他值,或者删除ListView并将TextBox放在PivotItem内部,或者删除Pivot并将ListView放在Grid内 - 该错误将消失。
有谁可以解释这个错误的原因以及如何修复它?
答案 0 :(得分:1)
这是预期的行为。
相反,请考虑以下XAML:
<Page.BottomAppBar>
<CommandBar>
<AppBarToggleButton Icon="Favorite" Checked="AppBarToggleButton_Checked" Unchecked="AppBarToggleButton_Unchecked" />
</CommandBar>
</Page.BottomAppBar>
<Grid>
<Pivot Title="Title0">
<PivotItem Header="Header0">
<ListView x:Name="MyListView" Background="Blue">
<ListViewItem>
<TextBlock
Text="0123456 0123456 0123456 01234 0123456"
TextWrapping="WrapWholeWords"
FontSize="24" />
</ListViewItem>
<ListViewItem>
<TextBlock
Text="0123456 0123456 0123456 01234 0123456"
TextWrapping="WrapWholeWords"
FontSize="24" />
</ListViewItem>
<ListViewItem>
<TextBlock
Text="0123456 0123456 0123456 01234 0123456"
TextWrapping="WrapWholeWords"
FontSize="24" />
</ListViewItem>
</ListView>
</PivotItem>
</Pivot>
</Grid>
带有相应的代码隐藏:
private void AppBarToggleButton_Checked(object sender, RoutedEventArgs e)
{
MyListView.SelectionMode = ListViewSelectionMode.Multiple;
}
private void AppBarToggleButton_Unchecked(object sender, RoutedEventArgs e)
{
MyListView.SelectionMode = ListViewSelectionMode.None;
}
切换选择复选框不会导致重新计算列表框内容宽度。