我正在使用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'中的一个图像。
答案 0 :(得分:0)
我通过使用RenderTransform属性将图像翻译到所需的点来解决了这个问题。