windows phone (25) Canvas元素B

來源:互聯網
上載者:User

 ZIndex

這也是一個附加屬性,表示canvas的children集合內的子項目的顯示順序,在canvas中的元素預設情況下是後面的子項目覆蓋前面的子項目,所以我們可以使用此附加屬性更改顯示內容,ZIndex其實是一個虛擬Z軸,正方向延伸出螢幕的,ZIndex的數值越大,表示在越向外,越小越容易被覆蓋,所以如果想設定某個子項目顯示,可以設定ZIndex較大值,ZIndex預設值為0;

觸摸處理

下面示範的樣本是通過改變RenderTransform屬性上的變形對象,從而是元素可以在螢幕上移動,也可以通過在代碼中設定left和top附加屬性移動Canvas中的元素;

首先在Canva中繪製三個Ellipse元素,並設定示範為紅色,綠色和藍色,另外當移動哪一個ellipse對象的時候,它的ZIndex就會在最上層,也就是設定移動的對象ZIndex值比其他兩個大

xaml部分代碼:

<!--ContentPanel - 在此處放置其他內容-->        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">            <Canvas Name="cav">                <Ellipse Canvas.Left="50" Canvas.Top="50" Width="100" Height="100" Fill="Red"></Ellipse>                <Ellipse Canvas.Left="150" Canvas.Top="150" Width="100" Height="100" Fill="Green"></Ellipse>                <Ellipse Canvas.Left="250" Canvas.Top="250" Width="100" Height="100" Fill="Blue"></Ellipse>            </Canvas>        </Grid>

xaml代碼比較簡單,兩個附加屬性設定相對位置,寬和高相等做圓,填充三個不同的顏色;在這裡我們重寫OnManipulationStarted和OnManipulationDelta方法,在OnManipulationStarted方法中 e.ManipulationContainer = cav;

部分隱藏代碼

protected override void OnManipulationStarted(ManipulationStartedEventArgs e)        {            //獲得定義座標的容器            e.ManipulationContainer = cav;            base.OnManipulationStarted(e);        }               int i = 0;        protected override void OnManipulationDelta(ManipulationDeltaEventArgs e)        {                       //獲得引發事件的元素            UIElement element = e.OriginalSource as UIElement;            //獲得修改            Point translation = e.DeltaManipulation.Translation;                       //設定新位置            Canvas.SetLeft(element,Canvas.GetLeft(element)+translation.X);            Canvas.SetTop(element, Canvas.GetTop(element) + translation.Y);            Canvas.SetZIndex(element, i++);            e.Handled = true;            base.OnManipulationDelta(e);        }

 無任何移動下的效果

 

上面中我們看到一個新方法就是Canvas.GetLeft(element),這個是獲得子項目在canvas中的left值,同理Canvas.GetTop(element),還有可以看到Canvas.SetZIndex(element, i++);把移動的元素放在最外層

看看移動的效果吧

 

 另一張:

 

 五一假期Over了,開始工作吧

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.