龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 移动开发 > Windows phone 开发 >

关于windows phone隐藏元素详细讲解

时间:2013-01-03 09:27来源:未知 作者:admin 点击:
分享到:
在wp中我们也会用到隐藏某个元素,已达到某种效果,刚刚从文章看到了,分享一下【作者:神舟龙】 Visibility 此属性能非常方便的实现隐藏某个元素,但是visibility属性不是boolean类型,
在wp中我们也会用到隐藏某个元素,已达到某种效果,刚刚从文章看到了,分享一下【作者:神舟龙】 Visibility 此属性能非常方便的实现隐藏某个元素,但是visibility属性不是boolean类型,他是visibility类型,并包含两个visible和collapsed两个成员的枚举类型: 其中默认状态下是visible即显示,当设置为collapsed时,元素大小就会变成0,并且当设置为collapsed是,该属性所属的元素不参与事件,并且不能获得焦点,不能获得焦点也就不能进行命中测试   xaml代码:
 代码如下 复制代码
<!--ContentPanel - 在此处放置其他内容-->
        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"
              >
            <TextBlock x:Name="tb1" Text="tb1显示" VerticalAlignment="Center" HorizontalAlignment="Center"></TextBlock>
            <TextBlock x:Name="tb2" Text="tb2显示"  Visibility="Collapsed" VerticalAlignment="Center" ></TextBlock>
        </Grid>
 加Visibility="Collapsed"前   加入visibility=“Collapsed”之后 但是要注意的是,如果在布局过程中用到此属性,把某个元素的大小给变成0之后,可能会影响这个布局; Opactity 没错,就是这个属性,在没看到这个属性前,我都没想到会是这个属性,不过仔细想想也是,当Opactity=“0”的时候,就把元素的透明度设置为最暗就看不到了,不过该元素还是实实在在的存在的,所以使用此属性适合在不影响布局的情况,而且元素也不会消失  xaml代码:
 代码如下 复制代码
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"
              >
            <TextBlock x:Name="tb1" Text="tb1显示" VerticalAlignment="Center" HorizontalAlignment="Center"></TextBlock>
            <TextBlock x:Name="tb2" Text="tb2显示"  Opacity="0" VerticalAlignment="Center" ManipulationDelta="tb2_ManipulationDelta" ></TextBlock>
        </Grid>
 运行后的效果:   和上一张图片一样,从代码中可以看到我们定义了一个触摸移动事件,看看会不会实现,隐藏文件代码比较简单,如下:
 代码如下 复制代码
   private void tb2_ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
        {
            this.PageTitle.Text = "依然相应事件";
        }
 效果:   就像上面的一句话,依然响应事件(貌似写这个事件测试是废话:))  好了,加上这句话就好了,加个属性IsHitTestVisible="False",这样就不会响应用户的触摸操作了;      在用作布局中,opacity属性没有visibility属性搞笑,如果需要用到频繁的布局嵌套,尽量避免opacity,如果在grid等元素中使用以上两个属性,那么gird中所包含的元素也会应用这两个属性; 如果在面板中应用rendertransform属性,那么面板中的子元素也会受到影响,但是如果在子面板中设置rendertransform 属性,那么父面板会忽略子面板变换的效果;    
精彩图集

赞助商链接