私はVirtualizingStackPanel
と奇妙な動作があります。私はTextBlock
とTextWrap="Wrap"
を含むアイテムのリストを持っています。ここでは、コードは次のとおりです。VirtualizingStackPanelとTextWrappingのバグ? Windows Phone
<ListBox x:Name="messagesList" ItemsSource="{Binding Messages}" >
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
...
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
<CheckBox Style="{Binding Own, Converter={StaticResource MsgTypeToStyle}}"
Tag="{Binding TimeString}"
IsEnabled="True">
<TextBlock Text="{Binding Content}" TextWrapping="Wrap"/>
</CheckBox>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
それはかなり良い作品が、私は(ないprommatically、エミュレータ上でマウスを使用して)非常に高速にスクロールしようとした場合、スクロール中にいくつかの遅れ、おそらくHorizontallOffset
は時々間違って計算されており、中下端は非常に奇妙な結果(画像を参照して、右の画像は正常な動作をdemostrates)。研究の後
私はすべてが正常に動作し、この夫婦から一つの要素を削除する場合、私は、組み合わせVirtualizingStackPanel
とTextBlock.TextWrap="Wrap"
でその問題を考え出しました。
大きなアイテム数のために仮想化が必要で、正しいテキスト表示にはTextWrap
が必要です。
私はVirtualizing Panelの独自の実装について考えています。どうすればいいですか、現在の問題を解決する方法を教えてください。
UPD:問題:最初の二つの画像ListBox
上
がすでにある(これ以上下にスクロールすることはできません)下にスクロールしますが、要素が間違って置かれ、右側に示す正しい配置(!)画像。これは非常に高速にスクロールする場合にのみ発生します。
UPD2:Milan Aggarwalに感謝します。彼は私の問題hereの良い例を提供しました。実際にはListBox
のバグだと思われます。 ListBox
内のコントロールと対話する必要があるため、回避策は私のシナリオには適合しません。 は今、私はそれがスクロールを意味し、私は、ページにフォーカスを設定する場合、ManipulationCompleted
イベントをキャッチし、それがInertial
あるかどうかを確認しようとしている:
void messagesList_ManipulationCompleted(object sender, ManipulationCompletedEventArgs e)
{
if (e.IsInertial)
this.Focus();
}
P.S. )
OFF_TOPIC:VKコンテストで幸運=) –