我有以下代码:
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位置。我该怎么做?
答案 0 :(得分:0)
<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)
所说的位置。
答案 1 :(得分:0)
像这样。
double left = (Canvas.ActualWidth - img.ActualWidth) / 2;
Canvas.SetLeft(img, left);
double top = (img.ActualHeight - img.ActualHeight) / 2;
Canvas.SetTop(img, top);
答案 2 :(得分:0)
在OnKeyDownHandler方法的最后一行中,“this”表示MainWindow,因此您的代码将使用Image替换其内容,包括Canvas在内的整个可视树。如果您希望将图像添加到画布,它应该类似于
this.myCanvas.Children.Add(img);