windows phone (22) 隱藏元素

在wp中我們也會用到隱藏某個元素,已達到某種效果,剛剛從文章看到了,分享一下【作者:神舟龍

Visibility

此屬性能非常方便的實現隱藏某個元素,但是visibility屬性不是boolean類型,他是visibility類型,幷包含兩個visible和collapsed兩個成員的枚舉類型:

其中默認狀態下是visible即顯示,當設置爲collapsed時,元素大小就會變成0,並且當設置爲collapsed是,該屬性所屬的元素不參與事件,並且不能獲得焦點,不能獲得焦點也就不能進行命中測試

 

xaml代碼:

  1. <!--ContentPanel - 在此處放置其他內容--> 
  2.         <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0" 
  3.               > 
  4.             <TextBlock x:Name="tb1" Text="tb1顯示" VerticalAlignment="Center" HorizontalAlignment="Center"></TextBlock> 
  5.             <TextBlock x:Name="tb2" Text="tb2顯示"  Visibility="Collapsed" VerticalAlignment="Center" ></TextBlock> 
  6.         </Grid> 

 加Visibility="Collapsed"前

 

加入visibility=“Collapsed”之後

但是要注意的是,如果在佈局過程中用到此屬性,把某個元素的大小給變成0之後,可能會影響這個佈局;

Opactity

沒錯,就是這個屬性,在沒看到這個屬性前,我都沒想到會是這個屬性,不過仔細想想也是,當Opactity=“0”的時候,就把元素的透明度設置爲最暗就看不到了,不過該元素還是實實在在的存在的,所以使用此屬性適合在不影響佈局的情況,而且元素也不會消失

 xaml代碼:

  1. <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0" 
  2.               > 
  3.             <TextBlock x:Name="tb1" Text="tb1顯示" VerticalAlignment="Center" HorizontalAlignment="Center"></TextBlock> 
  4.             <TextBlock x:Name="tb2" Text="tb2顯示"  Opacity="0" VerticalAlignment="Center" ManipulationDelta="tb2_ManipulationDelta" ></TextBlock> 
  5.         </Grid> 

 運行後的效果:

 

和上一張圖片一樣,從代碼中可以看到我們定義了一個觸摸移動事件,看看會不會實現,隱藏文件代碼比較簡單,如下:

 

  1. private void tb2_ManipulationDelta(object sender, ManipulationDeltaEventArgs e) 
  2.       { 
  3.           this.PageTitle.Text = "依然相應事件"
  4.       } 

效果:

 

就像上面的一句話,依然響應事件(貌似寫這個事件測試是廢話:))

 好了,加上這句話就好了,加個屬性IsHitTestVisible="False",這樣就不會響應用戶的觸摸操作了;

 

 

 在用作佈局中,opacity屬性沒有visibility屬性搞笑,如果需要用到頻繁的佈局嵌套,儘量避免opacity,如果在grid等元素中使用以上兩個屬性,那麼gird中所包含的元素也會應用這兩個屬性;

如果在面板中應用rendertransform屬性,那麼面板中的子元素也會受到影響,但是如果在子面板中設置rendertransform 屬性,那麼父面板會忽略子面板變換的效果;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章