我有一个使用虚拟化的垂直<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.XXX"
android:versionCode="1"
android:versionName="1.0">
,我订阅了ListView
事件。如果我将项目插入列表顶部,并尝试使用ContainerContentChanging
在ContainerContentChanging
的处理程序中进行转换,只要列表有足够的项目开始虚拟化,我就会开始获取类似的值-15000表示变换矩阵TransformToVisual(Window.Current.Content)
和OffsetX
值。因为我在顶部插入项目,所以它显然是渲染(它有适当的计算宽度/高度等),所以我不确定为什么变换会很糟糕。
如果它有帮助,这里有一些代码。它没有那么基本。
XAML:
OffsetY
代码隐藏:
<Page
x:Class="TestListView.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:TestListView"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="400"/>
</Grid.RowDefinitions>
<Button
Content="Add Item"
Click="OnAddItemClick"/>
<ListView
Grid.Row="1"
ItemsSource="{x:Bind Items, Mode=OneWay}"
ContainerContentChanging="OnContainerContentChanging"/>
</Grid>
</Page>