2017-01-01 20 views
4

私のアプリにTextBlockがあります。私はそれのフォントのサイズを変更するにはpinch in & outを処理したい。 イベントが発生すると、私はScaleのプロパティをチェックしますが、ほとんどの場合、Scaleは、私の指が遠くなったり近づいたりしても1です。 または期待どおりに動作しません。UWPアプリでピンチイン&アウトを処理する方法

誰も私の例をどのようにピンチインまたはアウトが起こったのを見つけるために表示することができますか?

答えて

0

スクロールビューアをその周りに配置します。それはボックスのピンチを介してズームしています。

+0

私はScrollViewerのを使用することはできませんありませんが、私はそれを自分自身 – Maryam

0

TextBlockScaleManipulationModeを設定しましたか?

また、Transparentの背景を持つGridまたはBorderコンテナに操作を入れて、操作イベントをキャプチャすることをお勧めします。 TextBlockの場合、ヒットテストの問題にぶつかり、操作イベントが発生しない可能性があります。

<Grid ManipulationMode="Scale" ManipulationDelta="YourHandler"> 
    <TextBlock Text="YourTextBlock" /> 
</Grid> 
+0

を処理する必要があります

は、次のコードを確認してください。私はなぜそれが1であるのか、それがどうして起こったのかを知る方法はほとんど分かりません。 – Maryam

0

コードに問題があるかどうかはわかりませんが、簡単なコードサンプルを作成しました。それはあなたの目標を達成することができます。私はイベントが発生しますし、私はそれで問題ありません言ったよう

<Grid Background="Red" Height="200" ManipulationDelta="StackPanel_ManipulationDelta" ManipulationMode="Scale"> 
     <TextBlock FontFamily="Verdana" 
      FontSize="32" 
      FontWeight="Bold" 
      Foreground="SteelBlue" 
      Text="Scaled Text" IsTextScaleFactorEnabled="True"> 
      <TextBlock.RenderTransform> 
       <ScaleTransform x:Name="ScaleTransform" ScaleX="1.0" ScaleY="1.0" /> 
      </TextBlock.RenderTransform> 
     </TextBlock> 
</Grid> 
private void Grid_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e) 
{ 
    ScaleTransform.ScaleX *= e.Delta.Scale; 
    ScaleTransform.ScaleY *= e.Delta.Scale; 
} 
関連する問題