我在我的應用程序中有一個TextBlock
。我想處理它pinch in & out
來調整它的字體。當ManipulationDelta
事件發生火災時,我檢查Scale
屬性,但大多數時候Scale
是1,即使我的手指遠離或接近。 或它不能按我的預期工作。如何在UWP應用程序中處理夾入和擠出
任何人都可以告訴我一個例子如何找到那個捏或發生?
我在我的應用程序中有一個TextBlock
。我想處理它pinch in & out
來調整它的字體。當ManipulationDelta
事件發生火災時,我檢查Scale
屬性,但大多數時候Scale
是1,即使我的手指遠離或接近。 或它不能按我的預期工作。如何在UWP應用程序中處理夾入和擠出
任何人都可以告訴我一個例子如何找到那個捏或發生?
將一個滾動查看器放在它周圍。它通過捏出盒子縮放。
您是否將ManipulationMode
設置爲TextBlock
至Scale
?
另外,我建議你把Grid
或Border
容器的操縱放在Transparent
背景上來捕捉操縱事件。在TextBlock
的情況下,您可能會遇到可能導致操作事件未被觸發的命中測試問題。
<Grid ManipulationMode="Scale" ManipulationDelta="YourHandler">
<TextBlock Text="YourTextBlock" />
</Grid>
正如我所說的事件被解僱,我沒有問題的。我不知道爲什麼大部分時間它是1或者如何找到發生的那個捏? – Maryam
我不確定在你的代碼中是否存在一些問題,但我做了一個簡單的代碼示例。它可以達到你的目標。
請檢查下面的代碼:
<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;
}
不,我不能使用的ScrollViewer,我應該處理它自己 – Maryam