2017-01-01 67 views
4

我在我的應用程序中有一個TextBlock。我想處理它pinch in & out來調整它的字體。當ManipulationDelta事件發生火災時,我檢查Scale屬性,但大多數時候Scale是1,即使我的手指遠離或接近。 或它不能按我的預期工作。如何在UWP應用程序中處理夾入和擠出

任何人都可以告訴我一個例子如何找到那個捏或發生?

回答

0

將一個滾動查看器放在它周圍。它通過捏出盒子縮放。

+0

不,我不能使用的ScrollViewer,我應該處理它自己 – Maryam

0

您是否將ManipulationMode設置爲TextBlockScale

另外,我建議你把GridBorder容器的操縱放在Transparent背景上來捕捉操縱事件。在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; 
} 
相關問題