2016-09-30 19 views
0

Pinch to zoomスケーリングがありますが、マウスでも行う必要があります。私はイメージをドラッグすることもできるので、私はそれをどのように実装できますか?マウスでUI要素をサイズ変更UWP

これは私がスケーリングズームするピンチを持っているが、私はまた、マウスでそれを行う必要がある指

private void Image_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e) 
    { 
     var ct = (CompositeTransform)image.RenderTransform; 
     ct.ScaleX *= e.Delta.Scale; 
     ct.ScaleY *= e.Delta.Scale; 
    } 

答えて

0

そのない最終的な結果は、マウスを離す必要があります終了後のボタン

private void Image_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e) 
    { 
     var border = sender as Border; 
      if (mousePos.X> pos.X|| mousePos.Y > pos.Y) 
      { 
       ct.ScaleX += e.Delta.Translation.X; 
       ct.ScaleY += e.Delta.Translation.Y; 
      } 
      if (mousePos.X < pos.X || mousePos.Y < pos.Y) 
      { 
       ct.ScaleX += e.Delta.Translation.X; 
       ct.ScaleY += e.Delta.Translation.Y; 
      } 
    } 
    private void ImageBorder_PointerPressed(object sender, PointerRoutedEventArgs e) 
    { 
     pos = Window.Current.CoreWindow.PointerPosition; 
    } 

    private void ImageBorder_PointerReleased(object sender, PointerRoutedEventArgs e) 
    { 
     pos = Window.Current.CoreWindow.PointerPosition; 
    } 
0

でスケーリングするための私のコードです。

あなたはスケールを変更するUIElement.PointerWheelChangedイベントを使用することができます。

コードビハインド:

private void Image_PointerWheelChanged(object sender, PointerRoutedEventArgs e) 
{ 
    int delta=e.GetCurrentPoint((UIElement)sender).Properties.MouseWheelDelta; 
    var ct = (CompositeTransform)img.RenderTransform; 
    ct.ScaleX += delta/120;//you can set 120 to other value to change the sensitivity 
    ct.ScaleY += delta/120; 
} 

XAML:

<Canvas Width="800" Height="800"> 
    <Image Name="img" Source="ms-appx:///Assets/profiler.jpeg" PointerWheelChanged="Image_PointerWheelChanged"></Image> 
</Canvas> 
+0

私はこの変形を見ましたが、ウィンドウのサイズを変更するときのようにマウスでやりたいとします – SmiLe

+0

「ウィンドウのサイズを変更したときのようにマウスで行う」とはどういう意味ですか? –

+0

つまり、 'Image'の枠線をタップすると、ドラッグしてサイズを変更することができます – SmiLe

関連する問題