如何在通用应用程序中通过触摸操作放大框架元素?
How do I enlarge a Framework Element by Touch Manipulation in Universal Apps?
在 iPhone 和 Android 上,可以通过在屏幕上分开两根手指来放大图片。我想在 Windows Universal Apps 上做类似的事情,但我不想缩放,而是想放大框架元素。这是操纵事件吗?
更新:是的我只想用手指放大特定的UIElement。
目前我的对象设置为使用此事件进行翻译:
private void Rectangle_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
FrameworkElement fe = sender as FrameworkElement;
if (!(fe.RenderTransform is TransformGroup))
{
TransformGroup tg = new TransformGroup();
TranslateTransform tt = new TranslateTransform();
tt.X = e.Cumulative.Translation.X;
tt.Y = e.Cumulative.Translation.Y;
ScaleTransform st = new ScaleTransform();
st.ScaleX = e.Cumulative.Scale;
st.ScaleY = e.Cumulative.Scale;
tg.Children.Add(tt);
tg.Children.Add(st);
fe.RenderTransform = tg;
}
else
{
TransformGroup tg = fe.RenderTransform as TransformGroup;
TranslateTransform tt = tg.Children[0] as TranslateTransform;
tt.X += e.Delta.Translation.X;
tt.Y += e.Delta.Translation.Y;
ScaleTransform st = tg.Children[1] as ScaleTransform;
st.ScaleX = e.Delta.Scale;
st.ScaleY = e.Delta.Scale;
}
}
这应该会将比例更改为 Delta.Scale,但是如何使用 "Pinch and Stretch"
使 Delta.Scale 大于 0
我不知道你所说的 "instead of zooming I want to enlarge the framework element" 是什么意思?你的意思是你只想用手指放大特定的UIElement吗?
无论如何,通常您可以处理指针输入并使用 GestureRecognizer API 来处理 Windows Store 应用程序中的手势和操作。您可以将相关的事件句柄附加到特定的 UIElement。
Here is a detailed sample code for manipulating a textblock element by tapping and sliding with the help of class GestureRecognizer. Here多了一个样本供参考
如有不明之处请告诉我。
在 iPhone 和 Android 上,可以通过在屏幕上分开两根手指来放大图片。我想在 Windows Universal Apps 上做类似的事情,但我不想缩放,而是想放大框架元素。这是操纵事件吗?
更新:是的我只想用手指放大特定的UIElement。
目前我的对象设置为使用此事件进行翻译:
private void Rectangle_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
FrameworkElement fe = sender as FrameworkElement;
if (!(fe.RenderTransform is TransformGroup))
{
TransformGroup tg = new TransformGroup();
TranslateTransform tt = new TranslateTransform();
tt.X = e.Cumulative.Translation.X;
tt.Y = e.Cumulative.Translation.Y;
ScaleTransform st = new ScaleTransform();
st.ScaleX = e.Cumulative.Scale;
st.ScaleY = e.Cumulative.Scale;
tg.Children.Add(tt);
tg.Children.Add(st);
fe.RenderTransform = tg;
}
else
{
TransformGroup tg = fe.RenderTransform as TransformGroup;
TranslateTransform tt = tg.Children[0] as TranslateTransform;
tt.X += e.Delta.Translation.X;
tt.Y += e.Delta.Translation.Y;
ScaleTransform st = tg.Children[1] as ScaleTransform;
st.ScaleX = e.Delta.Scale;
st.ScaleY = e.Delta.Scale;
}
}
这应该会将比例更改为 Delta.Scale,但是如何使用 "Pinch and Stretch"
使 Delta.Scale 大于 0我不知道你所说的 "instead of zooming I want to enlarge the framework element" 是什么意思?你的意思是你只想用手指放大特定的UIElement吗?
无论如何,通常您可以处理指针输入并使用 GestureRecognizer API 来处理 Windows Store 应用程序中的手势和操作。您可以将相关的事件句柄附加到特定的 UIElement。
Here is a detailed sample code for manipulating a textblock element by tapping and sliding with the help of class GestureRecognizer. Here多了一个样本供参考
如有不明之处请告诉我。