在WPF中更改图像位置

时间:2012-02-17 22:46:35

标签: c# wpf xaml event-handling

我试图在鼠标悬停时更改图像的位置。我有:

<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#中。

如何在画布上专门设置位置?

2 个答案:

答案 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.在他的评论中描述。