0

これは私の問題を再現するための例です

<FlipView>
    <FlipView.Resources>
        <Style TargetType="FlipViewItem">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="FlipViewItem">
                        <ScrollViewer HorizontalAlignment="Center" VerticalAlignment="Center"
                              HorizontalContentAlignment="Center" VerticalContentAlignment="Center" >
                                <ContentPresenter />
                          </ScrollViewer>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </FlipView.Resources>
    <Rectangle Width="1366" Height="768" >
        <Rectangle.Fill>
            <LinearGradientBrush EndPoint="0,0" StartPoint="1,0">
                <GradientStop Color="White"/>
                <GradientStop Color="Black" Offset="1"/>
                <GradientStop Color="White" Offset="0.487"/>
                <GradientStop Color="Black" Offset="0.44"/>
            </LinearGradientBrush>
        </Rectangle.Fill>
    </Rectangle>
</FlipView>

スクロールビューアの水平オフセットは、変更後に自動的に 0 に戻されます。これは、フリップビューのスクロール方向と同じ方向に常に発生すると思います。しかし、それを修正する方法は?

4

1 に答える 1

1

デフォルトScrollViewerでは、必要な場合にのみスクロールし、長方形はScrollViewerよりも小さくなります。また、アイテムは1つだけです。そのスタイルを設定してみることができます:Style="{StaticResource HorizontalScrollViewerStyle}"。これらのように:

<Page
    x:Class="App113.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:App113"
    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}">
        <Grid.Resources>
            <LinearGradientBrush
                x:Key="LibearBrush"
                EndPoint="0,0"
                StartPoint="1,1">
                <GradientStop
                    Color="White" />
                <GradientStop
                    Color="Black"
                    Offset="1" />
                <GradientStop
                    Color="White"
                    Offset="0.487" />
                <GradientStop
                    Color="Black"
                    Offset="0.44" />
            </LinearGradientBrush>
        </Grid.Resources>
        <FlipView>
            <FlipView.Resources>
                <Style
                    TargetType="FlipViewItem">
                    <Setter
                        Property="Template">
                        <Setter.Value>
                            <ControlTemplate
                                TargetType="FlipViewItem">
                                <!--Style="{StaticResource VerticalScrollViewerStyle}" is the standard alternative-->
                                <ScrollViewer
                                    Style="{StaticResource HorizontalScrollViewerStyle}"
                                    HorizontalAlignment="Center"
                                    VerticalAlignment="Center"
                                    HorizontalContentAlignment="Center"
                                    VerticalContentAlignment="Center">
                                    <ContentPresenter />
                                </ScrollViewer>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
            </FlipView.Resources>
            <Rectangle
                Width="2366"
                Height="1768"
                Fill="{StaticResource LibearBrush}" />
            <Rectangle
                Width="2366"
                Height="1768"
                Fill="{StaticResource LibearBrush}" />
            <Rectangle
                Width="2366"
                Height="1768"
                Fill="{StaticResource LibearBrush}" />
        </FlipView>
    </Grid>
</Page>
于 2013-02-13T18:38:24.173 に答える