2

ScrollViewerWindows ストア アプリのコンポーネントで奇妙な問題に直面しています。RichTextColumns水平にスクロールできる列にテキストを表示する内部にあります。

属性でズームを有効にしましたZoomMode="Enabled"が、ズーム中に指を離すと (アクションを停止するため)、スクロールがスムーズに上部に移動します (したがって、テキストの列の下部をズームしたい場合、アプリは自動的に必要なテキストが表示されません)。

最初はスナップポイントの問題かと思いましたが、アトリビュートにVerticalSnapPointsType="None"とを設定しても問題は解決しません。ZoomSnapPointsType="None"ScrollViewer

これはコードです (「グリッド アプリケーション」[スペイン語でAplicación de cuadrícula ]と呼ばれる既定のテンプレートを使用して、Visual Studio で新しいプロジェクトを作成できるのと同じです):

<ScrollViewer x:Name="scrollViewer" Style="{StaticResource HorizontalScrollViewerStyle}" Grid.Row="1" ZoomMode="Enabled" VerticalScrollMode="Enabled" VerticalSnapPointsType="None" ZoomSnapPointsType="None" VerticalSnapPointsAlignment="Far" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
      <common:RichTextColumns x:Name="richTextColumns" Margin="117,0,117,47">
          <RichTextBlock x:Name="richTextBlock" Width="560" Style="{StaticResource ItemRichTextStyle}" IsTextSelectionEnabled="False">
                <Paragraph>
                     <Run FontSize="26.667" FontWeight="Light" Text="{Binding Title}"/>
                     <LineBreak/>
                     <LineBreak/>
                     <Run FontWeight="Normal" Text="{Binding Subtitle}"/>
                </Paragraph>
                <Paragraph LineStackingStrategy="MaxHeight">
                     <InlineUIContainer>
                          <Image x:Name="image" MaxHeight="480" Margin="0,20,0,10" Stretch="Uniform" Source="{Binding Image}" AutomationProperties.Name="{Binding Title}"/>
                     </InlineUIContainer>
                </Paragraph>
                <Paragraph>
                     <Run FontWeight="SemiLight" Text="{Binding Content}"/>
                </Paragraph>
          </RichTextBlock>

          <common:RichTextColumns.ColumnTemplate>
               <DataTemplate>
                      <RichTextBlockOverflow Width="560" Margin="80,0,0,0">
                            <RichTextBlockOverflow.RenderTransform>
                                  <TranslateTransform X="-1" Y="4"/>
                            </RichTextBlockOverflow.RenderTransform>
                      </RichTextBlockOverflow>
               </DataTemplate>
          </common:RichTextColumns.ColumnTemplate>
    </common:RichTextColumns>

    <VisualStateManager.VisualStateGroups>
        <VisualStateGroup x:Name="ApplicationViewStates">
            <VisualState x:Name="FullScreenLandscape"/>
            <VisualState x:Name="Filled"/>

            <VisualState x:Name="FullScreenPortrait">
                 <Storyboard>
                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="richTextColumns" Storyboard.TargetProperty="Margin">
                           <DiscreteObjectKeyFrame KeyTime="0" Value="97,0,87,57"/>
                    </ObjectAnimationUsingKeyFrames>
                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="image" Storyboard.TargetProperty="MaxHeight">
                          <DiscreteObjectKeyFrame KeyTime="0" Value="400"/>
                    </ObjectAnimationUsingKeyFrames>
                </Storyboard>
            </VisualState>
            <VisualState x:Name="Snapped">
                <Storyboard>
                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="richTextColumns" Storyboard.TargetProperty="Margin">
                        <DiscreteObjectKeyFrame KeyTime="0" Value="17,0,17,57"/>
                    </ObjectAnimationUsingKeyFrames>
                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="scrollViewer" Storyboard.TargetProperty="Style">
                          <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource VerticalScrollViewerStyle}"/>
                    </ObjectAnimationUsingKeyFrames>
                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="richTextBlock" Storyboard.TargetProperty="Width">
                         <DiscreteObjectKeyFrame KeyTime="0" Value="280"/>
                    </ObjectAnimationUsingKeyFrames>
                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="image" Storyboard.TargetProperty="MaxHeight">
                         <DiscreteObjectKeyFrame KeyTime="0" Value="160"/>
                    </ObjectAnimationUsingKeyFrames>
                </Storyboard>
            </VisualState>
        </VisualStateGroup>
    </VisualStateManager.VisualStateGroups>
</ScrollViewer>

ただし、属性VerticalScrollBarVisibilityEnabled( AutoHiddenなど) に設定すると、ズームは期待どおりに機能しますが、テキストは 1 つの列に表示されます (垂直方向のオーバーフローがあります)。テキストは複数の列で表示する必要があります。

何か足りない?列で機能させるにはどうすればよいですか?

前もって感謝します。

4

0 に答える 0