我遇到了我的WP8.1的應用程序(WinRT的)ListBox
一個問題,我無法使其水平滾動。 5張圖片適合屏幕,6張以後的所有內容都是簡單的裁剪。 我試着在列表框的周圍添加ScrollViewer
,ItemsPanelTemplate
的地址爲ListBox
,沒有任何效果。 這是我的XAML代碼水平列表框無法滾動的Windows Phone 8.1 WP8.1
<ListBox x:Name="AppBarMenu"
Grid.Row="1"
Canvas.ZIndex="1"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
Background="{StaticResource BackgroundColorApp}"
ItemTemplate="{StaticResource StackMenuItem}"
ItemsSource="{Binding}"
Style="{StaticResource ListBoxHorizontal}"
ItemContainerStyle="{StaticResource ListBoxContainerStylePP}"
Foreground="{StaticResource TBColorNonSelected}"
SelectedIndex="{Binding SelectedIndex, ElementName=PetProtectorFrames, Mode=TwoWay}"
Height="0"
VerticalAlignment="Top"
SelectionChanged="AppBarMenu_SelectionChanged"
ScrollViewer.VerticalScrollBarVisibility="Disabled">
</ListBox>
這是ItemsPanelTemplate
<Style x:Key="ListBoxHorizontal"
TargetType="ListBox">
<Setter Property="BorderThickness"
Value="0" />
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"
VerticalAlignment="Center"
HorizontalAlignment="Center" />
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
</Style>
我事件模板嘗試添加VirtualizationStackpanel
而不是堆面板ItemsPanemTemplate但它的作用是相同的。當我嘗試設置屬性CanHorizontallyScroll=true
,我得到兩個錯誤,第一是這個屬性不裏VirtualizationStackpanel
存在,刪除這個屬性,又折回來之後,我得到的錯誤Syntax Error found in XBF generation
。 我試着自己尋找一個解決方案,看這裏,谷歌搜索它,但我找不到解決方案。有人可以幫我弄這個嗎?我已經連續2天都沒有理會我的頭了。
UPDATE:
列表框裏面網格如下因素設置:
<Grid x:Name="MainGrid">
<Grid.RowDefinitions>
<RowDefinition Height="0.091*" />
<RowDefinition Height="Auto" />
<RowDefinition Height="0.01*" />
<RowDefinition Height="0.9*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
,因爲我的動畫列表框高度第二行的高度設置爲自動。 Listbox充當AppBar,當我按下應用欄上的按鈕時,列表框顯示出包含菜單項。
SOLUTION UPDATE:
由SWilko提供的解決方案的啓發,我也設法解決我的問題,我的'ListBox的,所以修復到我以前的代碼較少的配置是這樣的:
<ListBox x:Name="AppBarMenu"
Grid.Row="1"
Canvas.ZIndex="1"
ScrollViewer.HorizontalScrollMode="Enabled"
ScrollViewer.HorizontalScrollBarVisibility="Visible"
ScrollViewer.VerticalScrollBarVisibility="Disabled"
ScrollViewer.VerticalScrollMode="Disabled"
Background="{StaticResource BackgroundColorApp}"
ItemTemplate="{StaticResource StackMenuItem}"
ItemsSource="{Binding}"
Style="{StaticResource ListBoxHorizontal}"
ItemContainerStyle="{StaticResource ListBoxContainerStylePP}"
Foreground="{StaticResource TBColorNonSelected}"
SelectedIndex="{Binding SelectedIndex, ElementName=PetProtectorFrames, Mode=TwoWay}"
Height="0"
VerticalAlignment="Top"
SelectionChanged="AppBarMenu_SelectionChanged">
</ListBox>
所有應該做的就是禁用垂直滾動並啓用水平滾動。
你可以張貼的XAML即'Grid'或面板周圍的'ListBox''休息嗎? – SWilko
我更新了問題 – Shakal187