天天看點

[Silverlight]打造具有放大縮小效果的圖檔導航

ok,先看效果

我們可以看到,當滑鼠指向Logo的時候 該Logo産生了平滑的放大效果,當滑鼠移出的時候又變回原樣。另外我們可以通過點選該Logo跳轉至其他頁面。

這個頁面的Xaml十分簡單

可以看到,我們為Image對象添加了MouseEnter、MouseLeave事件用來根據滑鼠的行為控制其動畫效果。而使用MouseLeftButtonDown事件處理點選Logo的情況。在這個例子裡我們并沒有使用HyperLinkButton,一方面因為HyperLinkButton會在控件四周産生邊框,我還未找到相應處理辦法;另一方面我們也要借此說明一下如何用代碼的方式新開一個視窗,我在下面的c#代碼中将會提及。

我們使用ScaleTransform來為圖檔的RenderTransform添加效果。ScaleTransform可以友善的在二維 x-y 坐标系内縮放對象。另外注意CenterX和CenterY屬性,在這個例子中它們大概是寬度和高度的2/3。

好的,一切準備完畢,趕快進入背景代碼開始code…

代碼不難了解,我們定義了一個枚舉來标記是放大還是縮小。同過DispatcherTimer來控制動畫的間隔及行為。

這裡說一下上面提到的打開新視窗的方式。就是利用System.Windows.Browser.HtmlPage.PopuWindow這個靜态方法,它的構造函數需要三個參數,前面兩個就不說了,最後的System.Windows.Browser.HtmlPopuWindowOptions類型的參數可以控制新打開視窗的大小,位置,是否可以改變大小,是否帶有邊框标題等等屬性。整個這個方法相當于js中的window.open。這裡做一個歸納:

名稱

說明

Directory

确定在彈出視窗中是否顯示 Internet Explorer 連結工具欄或 Firefox 個人/書簽工具欄。

Height

設定彈出視窗的高度。

Left

設定彈出視窗左邊緣的位置。

Location

設定彈出視窗的 URL。

Menubar

控制菜單欄在彈出視窗中的可見性。

Resizeable

确定是否可調整彈出視窗的大小。

Scrollbars

控制滾動條在彈出視窗中的可見性。

Status

控制狀态欄在彈出視窗中的可見性。

Toolbar

控制工具欄在彈出視窗中的可見性。

Top

設定彈出視窗上邊緣的位置。

Width

設定彈出視窗的寬度。

ps:使用這個方法的缺點是容易被浏覽器攔截。。。

Ok,Have fan.

本文轉自紫色永恒51CTO部落格,原文連結:http://www.cnblogs.com/024hi/archive/2008/12/06/1348994.html ,如需轉載請自行聯系原作者

繼續閱讀