在Windows应用商店应用中以编程方式设置图像的位置

时间:2013-07-13 17:22:27

标签: c# windows-runtime microsoft-metro winrt-xaml

我正在使用C#和XAML开发一个Windows应用商店应用程序,其中我在用户屏幕上显示了一个图像。在某些事件中,我想将其在屏幕上的位置更改为我选择的坐标。

我试过了

            Canvas.SetLeft(selectedImage, screenCoords.X);
            Canvas.SetTop(selectedImage, screenCoords.Y);

selectedImage.SetValue(Canvas.LeftProperty, screenCoords.X);
selectedImage.SetValue(Canvas.TopProperty, screenCoords.Y);

但他们没有工作。我之后也尝试更新布局。任何人都可以告诉我,我在这里做错了什么?

以下是XAML代码:

<FlipView.ItemTemplate>
                <DataTemplate>
                    <Grid x:Name="cv">
                        <Image x:Name="img1" Source = "{Binding ModelImage}" Stretch="Fill" Tag="{Binding ModelTag}" Tapped="ModelTapped"/>

                        <Image x:Name="hat" Source = "{Binding HatImage}" Width="{Binding HatWidth, Mode=TwoWay}" Height="{Binding HatHeight, Mode=TwoWay}" Stretch="Fill" ManipulationMode="All" ManipulationDelta="ResourceImage_ManipulationDelta" Tapped="imageTapped" Tag="{Binding hatTag}" Canvas.ZIndex="3">
                            <Image.RenderTransform>
                                <CompositeTransform />
                            </Image.RenderTransform>
                        </Image>
                    </Grid>
                </DataTemplate>
            </FlipView.ItemTemplate>

我在网格中有几个名为'cv'的图像,为简单起见,只删除它们。上面C#代码中的selectedImage是网格'cv'中的一个图像。

1 个答案:

答案 0 :(得分:0)

我通过使用RenderTransform属性将图像翻译到所需的点来解决了这个问题。