我有一个用InkCanvas填充的ListView,每个InkCanvas代表一个页面。我将ListView设置为可滚动的,如下所示:
<ListView Grid.Row="1"
x:Name="canvases"
SelectionMode="None"
ScrollViewer.ZoomMode="Enabled"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
ScrollViewer.HorizontalScrollMode="Enabled"
HorizontalContentAlignment="Center">
并且ListView被填充到相应的c#文件中:
for (int i = 0; i < 120; i++)
{
InkCanvas canvas = new InkCanvas();
canvas.Width = 720;
canvas.Height = 1080;
Grid grid = new Grid();
grid.Width = canvas.Width;
grid.Height = canvas.Height;
grid.Children.Add(canvas);
grid.Background = new SolidColorBrush(Windows.UI.Colors.White);
ListViewItem item = new ListViewItem();
item.Content = grid;
item.Width = canvas.Width;
item.Height = canvas.Height;
canvases.Items.Add(item);
addCanvas(canvas);
}
现在,当我运行程序时,视图最初是居中的,但当我向外滚动时,它向左移动:
1条答案
按热度按时间noj0wjuj1#
您需要稍微更改ListView的样式。
1.在Generic.xaml中查找ListView的默认样式
1.查找默认样式中名为
ScrollViewer
的ScrollViewer元素。1.将
ScrollViewer
的HorizontalContentAlignment
和HorizontalAlignment
属性设置为居中1.删除为ListView设置的
HorizontalContentAlignment
。1.运行应用程序,你会得到你想要的行为。
在此处设置Xaml样式:
主页Xaml:
结果: