Xaml 在网格中放大和缩小,WinRT上的图像(Metro风格的应用程序)

Xaml 在网格中放大和缩小,WinRT上的图像(Metro风格的应用程序),xaml,windows-8,windows-runtime,winrt-xaml,Xaml,Windows 8,Windows Runtime,Winrt Xaml,我正在尝试在我的应用程序中实现一些东西,我需要显示一个图像,并让用户在图像中夹进夹出 我认为使用ScrollViewer是可能的,但我无法让它工作,帮助?查看Morten Nielsen关于的文章。它适用于Silverlight/Windows Phone,但如果您只启用图像操纵,并更改操纵事件中的一些类型,那么它应该工作得很好 一个简单的解决方案可能就足够了,只需将图像放在ScrollViewer中,尽管要看到它工作,您需要一个触摸屏或在模拟器中运行它(使用挤压工具,然后在图像上拖动和滚动以放

我正在尝试在我的应用程序中实现一些东西,我需要显示一个图像,并让用户在图像中夹进夹出


我认为使用ScrollViewer是可能的,但我无法让它工作,帮助?

查看Morten Nielsen关于的文章。它适用于Silverlight/Windows Phone,但如果您只启用图像操纵,并更改操纵事件中的一些类型,那么它应该工作得很好

一个简单的解决方案可能就足够了,只需将图像放在ScrollViewer中,尽管要看到它工作,您需要一个触摸屏或在模拟器中运行它(使用挤压工具,然后在图像上拖动和滚动以放大/缩小)

您还可以使用以下代码对其进行缩放:

<Grid
    Background="{StaticResource ApplicationPageBackgroundBrush}">
    <ScrollViewer
        x:Name="myScrollViewer">
        <Image
            Source="/Assets/SplashScreen.png" />
    </ScrollViewer>
</Grid>

公共空白页()
{
this.InitializeComponent();
myScrollViewer.ZoomMode=ZoomMode.Enabled;//默认值
Test();
}
专用异步无效测试()
{
while(true)
{
对于(双x=0;x<2*Math.PI;x+=Math.PI/30)
{
等待任务。延迟(1000/30);
浮动系数=(浮动)(1.0+数学Sin(x)/10);
myScrollViewer.ZoomToFactor(因子);
}
}
}

查看Morten Nielsen的文章。它适用于Silverlight/Windows Phone,但如果您只启用图像操纵,并更改操纵事件中的一些类型,那么它应该工作得很好

一个简单的解决方案可能就足够了,只需将图像放在ScrollViewer中,尽管要看到它工作,您需要一个触摸屏或在模拟器中运行它(使用挤压工具,然后在图像上拖动和滚动以放大/缩小)

您还可以使用以下代码对其进行缩放:

<Grid
    Background="{StaticResource ApplicationPageBackgroundBrush}">
    <ScrollViewer
        x:Name="myScrollViewer">
        <Image
            Source="/Assets/SplashScreen.png" />
    </ScrollViewer>
</Grid>

公共空白页()
{
this.InitializeComponent();
myScrollViewer.ZoomMode=ZoomMode.Enabled;//默认值
Test();
}
专用异步无效测试()
{
while(true)
{
对于(双x=0;x<2*Math.PI;x+=Math.PI/30)
{
等待任务。延迟(1000/30);
浮动系数=(浮动)(1.0+数学Sin(x)/10);
myScrollViewer.ZoomToFactor(因子);
}
}
}

我不想过分简化,但是WinRT XAML ScrollViewer内置了手势操作

你明白我的意思了。这可能不是你想要的。但这肯定是一种简单的方法,可能适合某些特定的场景。甚至可能是你的

在合成中包含ScrollViewer的控件通常会在默认模板和起始视觉状态中为ZoomMode设置一个值,通常从该模板值开始。将ScrollViewer作为其组成部分的控件通常使用模板绑定,以便在控件级别设置附加属性将更改控件中ScrollViewer部分的滚动行为。否则,可能需要更换模板以更改ScrollViewer部件的滚动行为


我不想过分简化这一点,但是WinRT XAML ScrollViewer内置了手势操作

你明白我的意思了。这可能不是你想要的。但这肯定是一种简单的方法,可能适合某些特定的场景。甚至可能是你的

在合成中包含ScrollViewer的控件通常会在默认模板和起始视觉状态中为ZoomMode设置一个值,通常从该模板值开始。将ScrollViewer作为其组成部分的控件通常使用模板绑定,以便在控件级别设置附加属性将更改控件中ScrollViewer部分的滚动行为。否则,可能需要更换模板以更改ScrollViewer部件的滚动行为


我试过这个,它对我不起作用。我无法移植它。我认为有一种更简单的方法,我以前见过有人这样做,但那是在某个车间,我无法联系到那个人。我试过这个,它对我不起作用。我无法移植它。我认为有一种更简单的方法可以做到这一点,我以前见过有人这样做,但那是在某个研讨会上,我无法联系到那个人。我认为你描述的是所谓的“语义缩放”,你可能会有一些运气去搜索它。@LarryOsterman不。语义缩放是一个使用两个(或更多)的概念每一部分内容的详细程度,而不仅仅是图形化地缩小它。我认为您所描述的是所谓的“语义缩放”,您可能会有幸搜索到它。@LarryOsterman没有。语义缩放是一个概念,它对每一部分内容使用两个(或更多)级别的细节,而不是仅仅以图形方式缩小它。谢谢你的回答,我已经试过了,但是你不能从代码背后放大到一个点。为了澄清这个想法,我正在制作一张室内地图,我想突出显示并放大一些区域。谢谢你的回答,我已经尝试过了,但是你不能从代码后面放大到一个点。为了澄清这个想法,我正在制作一张室内地图,我想突出显示并放大一些区域。