所以以下 就以 C# 的方式 來編譯那些事件
範例網址
這個範例大致解說如下, 建立四個圖片物件, 分別有三種事件 ,
滑鼠移入物件: onMouseEnter()將所選圖片 透明度增加(預設0.65), 圖片作部份位移
滑鼠移出物件: onMouseLeave()還原位置及透明度
點選物件: onClick()開啟網頁
在 C# 的 code 如下
onMouseEnter()
由於 C# 定義較 javascript 嚴謹,所以要將sender 給予 Image的型態, (因為確定是由Image 所發生的物件 )
void onMouseEnter(Object sender, RoutedEventArgs e)
{
Image img = (Image)sender;
img.Opacity = 1;
Canvas.SetTop(img, Canvas.GetTop(img) + 3);
Canvas.SetLeft(img, Canvas.GetLeft(img) + 3);
}
onMouseLeave()
原理同onMouseEnter()
void onMouseLeave(Object sender, RoutedEventArgs e)
{
Image img = (Image)sender;
img.Opacity = 0.65;
Canvas.SetTop(img, Canvas.GetTop(img) - 3);
Canvas.SetLeft(img, Canvas.GetLeft(img) - 3);
}
onClick()
在C# 使用javascript 的 window 物件, 必須要using "System.Windows.Browser"
但是沒有像javascript那麼齊全, 例如就不能使用 window.open 這個方法, 但是可以利用
Window.Eval 的方式來執行出來javascript的程式
下面就利用 eval 的方式 執行出window.open來打開新網頁
void onClick( object sender, RoutedEventArgs e)
{
Image img = (Image)sender;
switch (img.Name)
{
case "p1":
HtmlPage.Window.Eval("window.open('http://www.google.com.tw/);");
break;
case "p2":
HtmlPage.Window.Eval("window.open('http://tw.yahoo.com/');");
break;
case "p3":
HtmlPage.Window.Eval("window.open('http://www.pchome.com.tw/');");
break;
case "p4":
HtmlPage.Window.Eval("window.open('http://tw.msn.com/');");
break;
default:
break;
}
}
沒有留言:
張貼留言