?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

打5块的长沙麻将怎么算钱:辉煌137com娱乐开户:WPF 用自定义Panel更好地处理Resize时的行为

?

长沙转转麻将必胜口诀 www.fv7j.com.cn WPF自带的Pane很多,然则功能都过于基础。对付一些常见功能的支持都不是很方便。下面的一些环境应该有不少人都碰到过。

1.Panel里的Item之间有一个Margin。然则要对着末一个或第一个Item分外处置惩罚:它不必要这个Margin。

2.窗口在Resize的历程中辉煌137com娱乐开户,Item之间会呈现彼此遮挡或是呈现某个Item只是部分可见。这时我们更盼望这个Item干脆暗藏起来好了。

3.很难在运行时调剂Item的顺序。(留意这评论争论的是Panel不是ItemsControl,这个问题对付后者很轻易,直接节制后台绑定的数据就可以了)

4.让Panel内Item的大年夜小根据Panel的大年夜小自动调节。

上面这些问题,在实现项目中时?;崤龅?,然则WPF没有供给一个专门的Panel来完美地处置惩罚所有这些问题。下面先详细先容一下这几个问题。

第1个问题太常见了,就不多说清楚明了。

第2个问题,一个Item,假如地方不敷完全显示出来,那就不要显示了嘛。显示出来个半成品多丢脸,还不如不显示。原先想做一个AutoHideBehavior,结果发明不是那么轻易,由于一个控件是否显示是由其父控件节制的,而Arrange的历程又没有定义什么Event可以节制。最好的要领照样用一个Custom Panel来实现。WPF已经自带一个类似这样的Panel叫ToolbarPanel。这个Panel真是自扫门前雪啊,实现了Toolbar上所必要的功能就竣工,想在其余地方用,行径还配不上,只能自己做一个。

对付问题4,TabControl的Header便是一个例子,WPF专门做一个TabPanel来节制Tab Header的结构,当Tab的Header有两排时,这些Header会自动填满Header的宽。很纳闷MS就不能做一个叫AutoFillWrapPanel之类的通用一些的Panel,或是给WrapPanel供给一个AutoFill属性吗?这个功能也可以经由过程为每个Child都定义好MaxWidth和Min辉煌137com娱乐开户Width属性,然则这属于一种hard code,一种magic number。

有不满才有进步嘛。MS如果什么功能都做了,那些控件开拓商不是都要倒了?

这里就基于StackPanel的基础行径,加入一些扩展功能。包括:

1.ItemMargin:节制Panel里Item之间的间距

2.Orientation:节制Panel里Item的放置偏向。StackPanel的功能。

3.ItemExtraWidth:当Panel足够宽时,给里面每个Item多分配的最大年夜宽度。

4.ItemExtraHeight:当Panel足够高时,给里面每个Item多分配的最大年夜高度。

5.LastVisualChildFil辉煌137com娱乐开户l:显示中,着末一个Item是否添补Panel的残??占?。

6.IsParticalItemHidden:当Panel的残??占洳还灰酝瓯傅叵允镜鼻癐tem时,就不显示。

7.ArrangeMan辉煌137com娱乐开户ager.ArrangeIndex:节制Panel的Children的衬着顺序。默认便是定义顺序。

8.Resizers:节制Panel在Resize时的行径。

这些属性照样对照抽象的,我们来详细看一下这个Panel在被Resize时的行径。

图1. Resize时的行径(最大年夜)

图2. Resize时的行径。(缩小ItemMargin)

图3. Resize时的行径。(缩小Item的附加宽度)

图4. Resize时的行径。(暗藏不完全可见工具)

而这个自定义Panel的默认行径与StackPanel是一样的。在上面的示例中,是先缩小了Item之间的距离再缩小Item本身??赡苡械娜瞬幌胍庋男芯?。这个扩展的StackPanel也供给了一个Resizers属性来节制这个行径。代码如下:

r:ResizerCollection>

r:ExtraLengthResizer IsEnabled="True"/>

r:ItemMarginResizer IsEnabled=辉煌137com娱乐开户"True"/>

r:ResizerCollection>

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: