WP7放大鏡效果實作

2021-06-05 10:48:56 字數 3025 閱讀 4841

今天我們在

windows phone 7

模擬器上面來做個簡單的放大鏡範例

這邊提一下,我在裝好開發工具後,我的

vs2010

已經可以開發

wp7應用程式,但是想要用

blend

設計介面時,卻發現找不到

blend forwindows phone beta

,後來是在執行解除安裝時

(參考下圖

),選擇第乙個選項,再按下一步就可以看到安裝

blend forwindows phone beta

的選項,安裝好後就有

blend for windows phone beta了

接下來我們就可以實際開始開發及設計介面了,首先我們先把容器換成

canvas

這樣比較容易用程式計算位置

然後我們加幾張圖片到專案裡,接著在畫面上加乙個

image

控制項並設定好一些屬性 1

再來我們加乙個

canvas

,並套用

scale

轉換,這裡我們設成放大

2倍的效果,並在

canvas

裡面放一張跟剛剛一樣的

image

進來,同時我們設定乙個圓形當作

canvas

的clip(裁切)

,這個圓形就是我們的放大鏡,另外我們也希望放大鏡效果是在滑鼠按下時才看的到,所以就把這個

canvas

的visibility

設成collapsed 1

2 34

56 78 9

另外我們放個

stackpanel

在下面,裡面放我們剛剛加進專案的其他

image

,這是讓我們可以隨時點選不同的圖片來替換我們上面有放大鏡效果的那張圖片 1

2 34

56 到這裡我們的介面就完成了,然後可以切換到

visual studio2010

來寫程式,我們在最底層的

canvas

容器加入三個滑鼠事件,

mouseleftbuttondown

、mouseleftbuttonup

、mousemove

,還有就是在我們介面下方

stackpanel

裡的image

加入mouseleftbuttondown

事件,所有事件我都是從介面

xaml

檔加入的,而

c#完整程式碼如下 01

using system;

02using system.collections.generic; 03

using system.linq;

04using system.net; 05

using system.windows;

06using system.windows.controls; 07

using system.windows.documents;

08using system.windows.input; 09

using system.windows.media;

10using system.windows.media.animation; 11

using system.windows.shapes;

12using microsoft.phone.controls; 13

using system.windows.media.imaging;14

151624

25bool drag;

26private void contentgrid_mouseleftbuttonup(object sender, mousebuttoneventargs e) 27

34} 35

36private void contentgrid_mouseleftbuttondown(object sender, mousebuttoneventargs e) 37

49}50

51private void contentgrid_mousemove(object sender, mouseeventargs e)52

61}62

63private void image1_mouseleftbuttondown(object sender, mousebuttoneventargs e)64

69}70}

這裡的程式就是簡單的判斷滑鼠位置然後改變我們放大的那個

canvas

位置來做出像放大鏡的效果

完整介面的

xaml

檔如下

0102 03

xmlns=""04

xmlns:x=""

05xmlns:phone="clr-namespace:microsoft.phone.controls;assembly=microsoft.phone"

06xmlns:shell="clr-namespace:microsoft.phone.shell;assembly=microsoft.phone" 07

xmlns:d=""08

xmlns:mc=""

09fontfamily=""

10fontsize="" 11

foreground=""

12supportedorientations="portrait" orientation="portrait" 13

mc:ignorable="d" d:designwidth="480" d:designheight="768"

14shell:systemtray.isvisible="true"> 15

16 1718 19

20 2122 23

24 25

26 2728 29

30 31

32

33 最後是幾張在模擬器中執行的畫面:

當我們按下滑鼠時就可以看到點選那個點為中心的放大效果

也可以在下面點不同圖片來替換要放大的圖片

android放大鏡效果實現

public class shaderview extends view override public boolean ontouchevent motionevent event override public void ondraw canvas canvas 基本原理就是使用shapedra...

放大鏡效果實現1

1,如果乙個大目標,看起來很嚇人,只要拆解出小目標,然後實現小目標,大目標就自然而然搞定了 a 讓乙個盒子背景色半透明 mask b 當滑鼠懸浮的時候,顯示move樣式 cursor move c 當大盒子mouseenter 的時候,讓mask 盒子顯示出來 smallbox.addeventli...

WPF放大鏡效果

原文 wpf放大鏡效果 在做wpf專案中,不止兩個專案需要有放大鏡功能。第乙個專案是乙個手術室的遠端示教系統,主要是為了方便專家演示病症時,可以放大上的某些部位。第二個專案是乙個工廠的mes專案,其中有個功能是質量預警,主要就是根據疵點,對比實物進行預警。可是疵點很小,這時就需要乙個放大鏡的功能。效...