我试图在鼠标悬停时更改图像的位置。我有:
<Image
Name="cat"
Source="CatRun.bmp"
Visibility="Hidden"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Width="100"
Height="100"
UIElement.MouseEnter="cat_MouseEnter"/>
在XAML中:
private void cat_MouseEnter(object sender, MouseEventArgs e)
{
}
在C#中。
如何在画布上专门设置位置?
答案 0 :(得分:4)
以下是一个例子:
<Canvas x:Name="canvas">
<Rectangle x:Name="rect" Width="20" Height="20" Canvas.Left="10" Canvas.Top="10" Fill="Blue" MouseEnter="RectangleMouseEnter" />
</Canvas>
您需要将附加属性设置为顶部,左侧(或底部,右侧)
private void RectangleMouseEnter(object sender, MouseEventArgs e)
{
Canvas.SetTop(rect, 50);
Canvas.SetLeft(rect, 50);
}
答案 1 :(得分:1)
为了从代码隐藏中设置“画布上的图像”的位置,您可以使用以下内容:
private void cat_MouseEnter(object sender, MouseEventArgs e)
{
Canvas.SetLeft(cat, 100); //set x coordinate of cat Image to 100
Canvas.SetTop(cat, 300); //set y coordinate of cat Image to 300
}
<强>更新强>
在某些情况下,您可能无法通过该方法按名称访问cat
对象。为了使其工作,只需使用应该是导致事件的Image
的发送者对象,如H.B.在他的评论中描述。