通过程序设置画布上的图像位置
本文关键字:图像 位置 过程 程序 设置 | 更新日期: 2023-09-27 17:51:06
我有以下代码:
namespace Game
{
public partial class MainWindow : Window
{
Image img = new Image();
public MainWindow()
{
InitializeComponent();
myCanvas.Focus();
img.Source = new BitmapImage(new Uri("C:''Users''Public''Pictures''Sample Pictures''Koala.jpg"));
img.Width = 100;
img.Height = 100;
}
public void OnKeyDownHandler(object sender, KeyEventArgs e)
{
Canvas.SetTop(img, 0);
Canvas.SetLeft(img, 0);
this.Content = img;
}
}
}
和XAML:
<Canvas Name="myCanvas" KeyDown="OnKeyDownHandler" Focusable="True" HorizontalAlignment="Left" Height="166" Margin="118,89,0,0" VerticalAlignment="Top" Width="300"/>
当我按下按钮时,图像会显示出来,就像我想做的那样,但在窗口的中心。我想做的是将图像设置在我想要的X,Y位置。我该怎么做?
<Canvas>
<Image x:Name="Foo" Canvas.Top="200" Canvas.Left="200" />
</Canvas>
Foo.SetValue(Canvas.Left, 100);
Foo.SetValue(Canvas.Top, 225);
这是我的基本测试场景。将图像设置为Image.SetValue(Canvas.Position, int)
指定的位置。
类似的内容。
double left = (Canvas.ActualWidth - img.ActualWidth) / 2;
Canvas.SetLeft(img, left);
double top = (img.ActualHeight - img.ActualHeight) / 2;
Canvas.SetTop(img, top);
在OnKeyDownHandler方法的最后一行中,"this"表示MainWindow,因此您的代码将用Image替换其内容,包括Canvas在内的整个视觉树。如果您想将图像添加到画布,它应该是类似的东西
this.myCanvas.Children.Add(img);