0

我正在尝试将示例代码的 c# 代码转换为 vb.net,但我可以使用以下代码行。这是一个事件,代表。但我无法构建功能结构。有人可以帮助我吗?谢谢

Ellipse node = new Ellipse();
node.Style = nodeStyle;

node.MouseEnter += delegate(object sender, MouseEventArgs e) {
    if (selectedNode == null)
        node.BeginStoryboard((Storyboard)FindResource("NodeFadeIn"));
};

node.MouseLeave += delegate(object sender, MouseEventArgs e) {
    if (selectedNode == null)
        node.BeginStoryboard((Storyboard)FindResource("NodeFadeOut"));
};

node.PreviewMouseDown += delegate(object sender, MouseButtonEventArgs e) {
    e.Handled = true;
    selectedNode = (Ellipse)sender;
};
4

1 回答 1

2

您需要在 VB.NET 中使用 AddHandler 关键字来订阅事件处理程序。在 VS2010 中,可以用 lambda 替换匿名方法,如下所示:

    AddHandler node.MouseEnter, _
        Sub()
            If node Is Nothing Then
                node.BeginStoryboard(DirectCast(FindResource("NodeFadeIn"), System.Windows.Media.Animation.Storyboard))
            End If
        End Sub

在 VS2008 及更早版本中,您需要编写一些私有方法。

于 2012-06-08T18:12:34.250 回答