通用Windows应用程序中的图像处理

时间:2016-01-20 11:59:37

标签: c# image windows-10 windows-10-mobile windows-10-universal

我在网格中有一个图像元素以及其中的其他控件。我希望能够缩放图像。我不想将它放在滚动查看器中,因为我不知道图像的尺寸,因为它是一个通用应用程序,我有很多Adpative UI和ScrollViewer混淆整个事情。图像从网上下载。当用户向左或向右滑动时,图像的源应该变为上一个或下一个图像。我在LinkedList中保存图像的来源并相应地更新源。

我使用以下代码实现了滑动以更改图像源

MediaControl.ManipulationMode = ManipulationModes.TranslateX | ManipulationModes.TranslateY;
        MediaControl.ManipulationStarted += (s, e) => { X1 = (int)e.Position.X; Y1 = (int)e.Position.Y; };
        MediaControl.ManipulationCompleted += (s, e) => {
            X2 = (int)e.Position.X;
            Y2 = (int)e.Position.Y;
            if (Math.Abs(X1 - X2) >= 50 && Math.Abs(Y1 - Y2) < 20)
            {
                {
                    if (X1 > X2)
                    {
                        NextPostButton_Click(s, e);
                    }
                    else
                    {
                        PreviousPostButton_Click(s, e);
                    }
                }
            };
        };

我希望在更改信号源的同时在我的图像中使用缩放功能,图像应缩小。我想要缩放和滑动功能,而不会影响其他操作。我该怎么做呢?我是初学者,没有经验非常复杂的Pointer事件。如果有人可以帮助我,或者指出我学习这个的好资料,我会永远感激。 谢谢。

2 个答案:

答案 0 :(得分:0)

您可以注册ManipulationDelta事件,并使用ManipulationDelta.Scale属性来处理缩放。

{{1}}

有关ManipulationDelta的更多信息,请参阅 https://msdn.microsoft.com/en-us/library/system.windows.input.manipulationdelta.scale(v=vs.110).aspx

有关ManipulationModes的详细信息,请参阅 https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.input.manipulationmodes

答案 1 :(得分:0)

在其中使用带有ScrollViewer的FlipView和其中的Image。然后,您只需将FlipView的ItemsSource绑定到Uri的集合。这将自动保持缩放功能和滑动功能。在浏览图像时,每个图像都将保留其缩放系数。这在移动设备和台式机/平板电脑上非常有效。

如果您需要一些示例代码,请告诉我。我现在正在打电话,所以做起源有点困难。