0

次のリストボックス コントロールをグリッド内に配置しましたが、リストボックスが水平方向に正しくスクロールしません。スクロールバーをドラッグすると問題なく動作しますが、矢印をクリックすると途中までしかスクロールしません。この動作を修正するにはどうすればよいですか?

<Page
x:Class="App5.MainPage"
IsTabStop="false"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:App5"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">

<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
      <ListBox Height="400" Width="200" 
       ScrollViewer.HorizontalScrollBarVisibility="Auto" 
      ScrollViewer.HorizontalScrollMode="Auto">
      <ListBoxItem Content="This is my horizontal test # 1" />
      <ListBoxItem Content="This is my second horizontal test which spams across" />
      </ListBox>
</Grid>
</Page>

ありがとう

4

1 に答える 1

1

私にはWinRTのバグのように見えます。それでもHorizo​​ntalLargeIncreaseRepeatButtonをクリックすると、機能します。おそらく、ListBox / ScrollViewer / ScrollBar /Horizo​​ntalLargeIncreaseリピートボタンのテンプレートを編集してクリック/タッチターゲットを拡張してHorizo​​ntalSmallIncreaseリピートボタンの領域とオーバーラップさせることができるので、クリックした場所に関係なく、完全にスクロールします。

または、ListBox.ItemsPanel/ItemsPanelTemplateをStackPanelに設定することもできます。デフォルトはVirtualizingStackPanelであり、StackPanelとは対照的に、バインドされたコレクション内のすべてのアイテムを生成しないため、長いリストに適していますが、表示される問題はVirtualizingStackPanelにあるようです。

于 2012-08-05T06:53:31.520 に答える