[英]How implement pinch zoom without preserving aspect ratio in windows runtime?
我有一個圍繞畫布對象的scrollviewer
<ScrollViewer>
<Canvas x:Name="myCanvas"/>
</ScrollViewer>
我在代碼中向Canvas中添加了(很多)繼承的自定義控件,這使我基本上可以創建一個交互式圖表:
var myControl = new MyControl();
myControl.Height = 10;
myControl.Width = 20;
Canvas.SetLeft(myControl,5);
Canvas.SetTop(myControl,20);
this.myCanvas.Children.Add(myControl);
ScrollViewer允許我在這個控件畫布周圍平移和縮放縮放,保持相同的寬高比。
有沒有辦法輕松實現拉伸使用捏縮即縮放而不保持縱橫比?
ScrollViewer不支持這一點。 您需要使用指針或操作事件以及RenderTransform來推出自己的實現。
像這樣的東西(基本上實現菲利普的答案):
<Image x:Name="_image" Stretch="None" ManipulationDelta="OnManipulationDelta">
<Image.RenderTransform>
<CompositeTransform />
</Image.RenderTransform>
</Image>
在代碼隱藏中:
private void OnManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
var ct = (CompositeTransform)_image.RenderTransform;
// Scale horizontal.
ct.ScaleX *= e.Delta.Scale;
// Scale vertical.
ct.ScaleY *= e.Delta.Scale;
}
在您的情況下,您應該只有一個縮放語句。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.