零元学Expression Blend 4 - Chapter 39 虾米?!同款?不同师傅!告诉你VisibleHidden与Collapsed的差异!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了零元学Expression Blend 4 - Chapter 39 虾米?!同款?不同师傅!告诉你VisibleHidden与Collapsed的差异!相关的知识,希望对你有一定的参考价值。

原文:零元学Expression Blend 4 - Chapter 39 虾米?!同款?不同师傅!告诉你Visible、Hidden与Collapsed的差异!

由此可知

Hidden为隐藏项目,但也保留项目的配置空间

而Collapsed为隐藏项目,但因为没有保留项目的配置空间,所以会使得绿色区块位置改变





MSDN提到:

Visibility 值为 Collapsed 的项目不会占用任何配置空间。

(MSDN对Visibility的介绍原文)



配置空间指的是项目存在画面上的位置

所以就算是该项目使用Collapsed,项目不会占用任何配置空间

但是与是否会耗损资源并没有任何的绝对关系!!!!


就算不存在画面上,检查Xaml时,会发现已设定为Collapsed的项目还是存在的

?

很多时候,当设计版面或是动画的需要利用AppearanceVisibility来达到效果

本篇就是要跟大家介绍Visibility的三种配置效果

?

我们开始吧!

?

01

跟之前不一样的是,这次我们要开启的新专案需使用WPF Application

为什麽?看下去就知道!

?

New Project->选取WPF Application->命名後按下OK

技术分享图片

?

现在就先来说明为甚麽要使用WPF专案

如下图

左边是Silverlight专案下的Visibility,只有Visible与Collapsed两种

右边是WPF专案下的Visibility,有Visible、Hidden与Collapsed三种

?

为了要比较这三种设定的明显不同,所以本篇我们使用WPF专案

技术分享图片

?

?

02

专案开启後,在主要工作区放入一个StackPanel

技术分享图片

?

接着在StackPanel里置入四个Rectangle

技术分享图片

?

?

为了方便对照,请复制整个StackPanel,放置於画面上对称的位置

技术分享图片

?

?

03

我们开始设定Visible、Hidden与Collapsed吧!

粉红色与绿色我们不动它,使之保持预设值Visible

?

选取蓝色的Rectangle,设定为Hidden

技术分享图片

?

设定为Hidden的蓝色Rectangle已经消失了

但是其它颜色的Rectangle并没有因为蓝色Rectangle的设定有任何的改变

?

?

04

再来,选取黄色Rectangle,设定为Collapsed

技术分享图片

?

?

设定为Collapsed的黄色Rectangle已经消失了

并且因为黄色Rectangle的设定,使得其他颜色的Rectangle位子也因此有所改变

?

?

05

请看下图的整理的差异分析

技术分享图片

?

由此可知

Hidden为隐藏项目,但也保留项目的配置空间

Collapsed为隐藏项目,但因为没有保留项目的配置空间,所以会使得绿色区块位置改变

?

?

MSDN提到:

Visibility 值为 Collapsed 的项目不会占用任何配置空间。

(MSDN对Visibility的介绍原文)

?

配置空间指的是项目存在画面上的位置

所以就算是该项目使用Collapsed,项目不会占用任何配置空间

但是与是否会耗损资源并没有任何的绝对关系!!!!

?

就算不存在画面上,检查Xaml时,会发现已设定为Collapsed的项目还是存在

   1: <StackPanel x:Name="SettingStakPnl" Margin="20" Background="#FF444444" Grid.Column="1">
   2:     <Rectangle x:Name="PinkBox1" Fill="#FFFF00A4" Height="75" Width="150" Margin="5,6,5,1" StrokeThickness="0"/>

		
		
   3:     <Rectangle x:Name="BlueBox1" Fill="#FF0004FF" Height="75" Width="150" Margin="5,6,5,1" StrokeThickness="0" Visibility="Hidden"/>

		
		
   4:     <Rectangle x:Name="YellowBox1" Fill="#FFFFF500" Height="75" Width="150" Margin="5,6,5,1" StrokeThickness="0" Visibility="Collapsed"/>

		
		
   5:     <Rectangle x:Name="GreenBox1" Fill="#FF00E403" Height="75" Width="150" Margin="5,6,5,1" StrokeThickness="0"/>

		
		
   6: </StackPanel>

	

?

?

?

?

?

以上对Visibility的介绍,希望能达到初学者对正确观念的厘清唷!

?

?

?

?

?

(若有任何错误的地方,请各位前辈或同好能不吝指教,小女子都会虚心接受;若是你喜欢我的教学,请给我点鼓励,谢谢。)

一步一步迈向HIE之路

 

喜欢我文章请推我一下或给我个回应,你的鼓励会给我无限的动力喔!

若是您有其他问题或是特别需要,请在文章回应处留言,我会尽快回覆您

 

 



























以上是关于零元学Expression Blend 4 - Chapter 39 虾米?!同款?不同师傅!告诉你VisibleHidden与Collapsed的差异!的主要内容,如果未能解决你的问题,请参考以下文章

零元学Expression Blend 4 - Chapter 10 用实例了解布局容器系列-「StackPanel」

零元学Expression Blend 4 - Chapter 19 如何让做好的Blend专案变Silverlight网页

零元学Expression Blend 4 - Chapter 8 用实例了解布局容器系列-「Grid」

零元学Expression Blend 4 - Chapter 11 用实例了解布局容器系列-「Border」

零元学Expression Blend 4 - Chapter 9 用实例了解布局容器系列-「Canvas」

零元学Expression Blend 4 &ndash; Chapter 21 以实作案例学习MouseDragElementBehavior