Hi
I will like to add pinch zoom to the content of textblock in my app for users to increase and decrease the font size as they wish. I have written some code for it but to my amazement it's not working, this is the code below kindly guide me
Xaml
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> <ScrollViewer Grid.Row="1"> <TextBlock TextWrapping="Wrap" Foreground="Black" > The life of Enoch Adejare Adeboye is a fulfillment of the scriptures in Zechariah 4: 10 which declare, "despise not the days of small beginnings.<LineBreak/><LineBreak/> <TextBlock.RenderTransform> <CompositeTransform x:Name="transform" /> </TextBlock.RenderTransform> <toolkit:GestureService.GestureListener> <toolkit:GestureListener PinchStarted="OnPinchStarted" PinchDelta="OnPinchDelta" DoubleTap="GestureListener_DoubleTap" DragDelta="GestureListener_DragDelta" /> </toolkit:GestureService.GestureListener> </TextBlock> </ScrollViewer> </Grid>
Xaml.cs
private void OnPinchStarted(object sender, PinchStartedGestureEventArgs e) { var text = sender as TextBlock; var transform = text.RenderTransform as CompositeTransform; angle = transform.Rotation; scale = transform.ScaleX; } private void OnPinchDelta(object sender, PinchGestureEventArgs e) { var text = sender as TextBlock; var transform = text.RenderTransform as CompositeTransform; transform.Rotation = angle + e.TotalAngleDelta; transform.ScaleX = scale * e.DistanceRatio; transform.ScaleY = scale * e.DistanceRatio; } private void GestureListener_DoubleTap(object sender, GestureEventArgs e) { var text = sender as TextBlock; var transform = text.RenderTransform as CompositeTransform; transform.ScaleX = transform.ScaleY = 1; } private void GestureListener_DragDelta(object sender, DragDeltaGestureEventArgs e) { var text = sender as TextBlock; var transform = text.RenderTransform as CompositeTransform; transform.TranslateX += e.HorizontalChange; transform.TranslateY += e.VerticalChange; } public double angle { get; set; } public double scale { get; set; }
Thank you in advance and reply soon