Semanticzoom里面的Listview

时间:2014-10-02 20:10:33

标签: listview touch winrt-xaml semantic-zoom

我在SemanticZoom中使用ListView时遇到问题。这很难解释,但我无法粘合"我的ListView在左侧。

当在SemanticZoom中使用ListView时,您可以用手指移动ListView。当你没有语义缩放时,它不会移动并保持在左边。

繁殖:

  • 创建新的Windows应用商店应用(在我的情况下是通用应用)
  • 创建一个SemanticZoom并在ZoomedInView中创建一个带有一堆ListViewItems的ListView
  • 运行并尝试用手指移动ListView
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <SemanticZoom HorizontalAlignment="Left">
        <SemanticZoom.ZoomedInView>
            <ListView Width="600" HorizontalAlignment="Left" >
                <ListViewItem>Hello World</ListViewItem>
                <ListViewItem>Hello World</ListViewItem>
                <ListViewItem>Hello World</ListViewItem>
                <ListViewItem>Hello World</ListViewItem>
            </ListView>
        </SemanticZoom.ZoomedInView>
        <SemanticZoom.ZoomedOutView>
            <GridView />
        </SemanticZoom.ZoomedOutView>
    </SemanticZoom>
</Grid>

将ManipulationMode设置为&#34;无&#34;它只会从左向右移动但不会向左移动。

提前致谢, 瑞克

1 个答案:

答案 0 :(得分:0)

这个问题似乎是一个SemanticZoom问题。我找到了一个解决方案:http://poniaten.wordpress.com/2014/04/14/how-to-fix-scroll-in-semantic-zoom-zoom-out/

快速:SemanticZoom需要以下样式:

            <Style TargetType="SemanticZoom">
            <Setter Property="Padding" Value="3"/>
            <Setter Property="Background" Value="Transparent"/>
            <Setter Property="BorderThickness" Value="0"/>
            <Setter Property="IsTabStop" Value="False"/>
            <Setter Property="TabNavigation" Value="Once"/>
            <Setter Property="ScrollViewer.HorizontalScrollMode" Value="Enabled"/>
            <Setter Property="ScrollViewer.IsHorizontalRailEnabled" Value="False"/>
            <Setter Property="ScrollViewer.VerticalScrollMode" Value="Disabled"/>
            <Setter Property="ScrollViewer.IsVerticalRailEnabled" Value="False"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="SemanticZoom">
                        <Grid>
                            <VisualStateManager.VisualStateGroups>
                                <VisualStateGroup x:Name="SemanticZoomStates">
                                    <VisualState x:Name="ZoomInView">
                                        <Storyboard>
                                            <FadeOutThemeAnimation TargetName="ZoomedOutPresenter"/>
                                            <FadeInThemeAnimation TargetName="ZoomedInPresenter"/>
                                        </Storyboard>
                                    </VisualState>
                                    <VisualState x:Name="ZoomOutView">
                                        <Storyboard>
                                            <FadeOutThemeAnimation TargetName="ZoomedInPresenter"/>
                                            <FadeInThemeAnimation TargetName="ZoomedOutPresenter"/>
                                        </Storyboard>
                                    </VisualState>
                                </VisualStateGroup>
                                <VisualStateGroup x:Name="ZoomOutButtonStates">
                                    <VisualStateGroup.Transitions>
                                        <VisualTransition From="ZoomOutButtonVisible" To="ZoomOutButtonHidden">
                                            <Storyboard BeginTime="0:0:3">
                                                <FadeOutThemeAnimation TargetName="ZoomOutButton"/>
                                                <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="IsHitTestVisible" Storyboard.TargetName="ZoomOutButton">
                                                    <DiscreteObjectKeyFrame KeyTime="0">
                                                        <DiscreteObjectKeyFrame.Value>
                                                            <x:Boolean>False</x:Boolean>
                                                        </DiscreteObjectKeyFrame.Value>
                                                    </DiscreteObjectKeyFrame>
                                                </ObjectAnimationUsingKeyFrames>
                                            </Storyboard>
                                        </VisualTransition>
                                    </VisualStateGroup.Transitions>
                                    <VisualState x:Name="ZoomOutButtonVisible">
                                        <Storyboard>
                                            <FadeInThemeAnimation TargetName="ZoomOutButton"/>
                                        </Storyboard>
                                    </VisualState>
                                    <VisualState x:Name="ZoomOutButtonHidden">
                                        <Storyboard>
                                            <FadeOutThemeAnimation TargetName="ZoomOutButton"/>
                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="IsHitTestVisible" Storyboard.TargetName="ZoomOutButton">
                                                <DiscreteObjectKeyFrame KeyTime="0">
                                                    <DiscreteObjectKeyFrame.Value>
                                                        <x:Boolean>False</x:Boolean>
                                                    </DiscreteObjectKeyFrame.Value>
                                                </DiscreteObjectKeyFrame>
                                            </ObjectAnimationUsingKeyFrames>
                                        </Storyboard>
                                    </VisualState>
                                </VisualStateGroup>
                            </VisualStateManager.VisualStateGroups>
                            <ScrollViewer x:Name="ScrollViewer" HorizontalScrollMode="Disabled" HorizontalContentAlignment="Center" HorizontalScrollBarVisibility="Hidden" IsHorizontalRailEnabled="{TemplateBinding ScrollViewer.IsHorizontalRailEnabled}" IsScrollInertiaEnabled="True" IsZoomChainingEnabled="True" IsZoomInertiaEnabled="False" IsVerticalRailEnabled="{TemplateBinding ScrollViewer.IsVerticalRailEnabled}" MinZoomFactor="0.5" MaxZoomFactor="1.0" VerticalScrollBarVisibility="Hidden" VerticalScrollMode="{TemplateBinding ScrollViewer.VerticalScrollMode}" VerticalContentAlignment="Center" ZoomMode="Enabled">
                                <ScrollViewer.Template>
                                    <ControlTemplate TargetType="ScrollViewer">
                                        <ScrollContentPresenter x:Name="ScrollContentPresenter" ContentTemplate="{TemplateBinding ContentTemplate}" Margin="{TemplateBinding Padding}"/>
                                    </ControlTemplate>
                                </ScrollViewer.Template>
                                <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" RenderTransformOrigin="0, 0">
                                    <Border.RenderTransform>
                                        <CompositeTransform x:Name="ManipulatedElementTransform"/>
                                    </Border.RenderTransform>
                                    <Grid Margin="{TemplateBinding Padding}">
                                        <ContentPresenter x:Name="ZoomedInPresenter" Content="{TemplateBinding ZoomedInView}" IsHitTestVisible="False" RenderTransformOrigin="0.5, 0.5" Visibility="Collapsed">
                                            <ContentPresenter.RenderTransform>
                                                <CompositeTransform x:Name="ZoomedInTransform"/>
                                            </ContentPresenter.RenderTransform>
                                        </ContentPresenter>
                                        <ContentPresenter x:Name="ZoomedOutPresenter" Content="{TemplateBinding ZoomedOutView}" IsHitTestVisible="False" RenderTransformOrigin="0.5, 0.5" Visibility="Collapsed">
                                            <ContentPresenter.RenderTransform>
                                                <CompositeTransform x:Name="ZoomedOutTransform"/>
                                            </ContentPresenter.RenderTransform>
                                        </ContentPresenter>
                                    </Grid>
                                </Border>
                            </ScrollViewer>
                            <Button x:Name="ZoomOutButton" HorizontalAlignment="Right" IsTabStop="False" Margin="0,0,7,24" VerticalAlignment="Bottom">
                                <Button.Template>
                                    <ControlTemplate TargetType="Button">
                                        <Border x:Name="Root" BorderBrush="{StaticResource SemanticZoomButtonBorderThemeBrush}" BorderThickness="1" Background="{StaticResource SemanticZoomButtonBackgroundThemeBrush}" Height="21" Width="21">
                                            <VisualStateManager.VisualStateGroups>
                                                <VisualStateGroup x:Name="NormalStates">
                                                    <VisualState x:Name="Normal"/>
                                                    <VisualState x:Name="PointerOver">
                                                        <Storyboard>
                                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="Root">
                                                                <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource SemanticZoomButtonPointerOverBackgroundThemeBrush}"/>
                                                            </ObjectAnimationUsingKeyFrames>
                                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderBrush" Storyboard.TargetName="Root">
                                                                <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource SemanticZoomButtonPointerOverBorderThemeBrush}"/>
                                                            </ObjectAnimationUsingKeyFrames>
                                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="Glyph">
                                                                <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource SemanticZoomButtonPointerOverForegroundThemeBrush}"/>
                                                            </ObjectAnimationUsingKeyFrames>
                                                        </Storyboard>
                                                    </VisualState>
                                                    <VisualState x:Name="Pressed">
                                                        <Storyboard>
                                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="Root">
                                                                <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource SemanticZoomButtonPressedBackgroundThemeBrush}"/>
                                                            </ObjectAnimationUsingKeyFrames>
                                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderBrush" Storyboard.TargetName="Root">
                                                                <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource SemanticZoomButtonPressedBorderThemeBrush}"/>
                                                            </ObjectAnimationUsingKeyFrames>
                                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="Glyph">
                                                                <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource SemanticZoomButtonPressedForegroundThemeBrush}"/>
                                                            </ObjectAnimationUsingKeyFrames>
                                                        </Storyboard>
                                                    </VisualState>
                                                </VisualStateGroup>
                                            </VisualStateManager.VisualStateGroups>
                                            <TextBlock x:Name="Glyph" Foreground="{StaticResource SemanticZoomButtonForegroundThemeBrush}" FontSize="{StaticResource SemanticZoomButtonFontSize}" FontFamily="{StaticResource SymbolThemeFontFamily}" HorizontalAlignment="Center" IsHitTestVisible="False" Margin="0,0,0,1" Text="" UseLayoutRounding="False" VerticalAlignment="Center"/>
                                        </Border>
                                    </ControlTemplate>
                                </Button.Template>
                            </Button>
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>