[WPF Bug清单]之(8)——RowDefinition中MaxHeight在一定条件下失效

[WPF Bug清单]之(8)——RowDefinition中MaxHeight在一定条件下失效

再下一城。

BUG描述:当RowDefinition的Height属性被设置为Auto时,MaxHeight将不会对这个Row的Height起到限制作用。

 

2012年6月1日更新:

这是因为Grid的Auto比MaxHeight的优先级要高。拖动Splitter之后MaxHeight生效,是因为拖动Splitter会使 Grid的Auto失效掉。回复中ocean的回复请无视之。

 

Bug发现过程:想做一个像Visual Studio 2008里Error List一样的东西。平时自动占用最小的空间,可以在适当的时候自己弹出来,但是又不要弹得过高。

 

示例窗口代码如下: 

ContractedBlock.gif
ExpandedBlockStart.gif
Demo Window

[WPF Bug清单]之(8)——RowDefinition中MaxHeight在一定条件下失效<Window x:Class=”InvaliMaxHeight.DemoWindow”
[WPF Bug清单]之(8)——RowDefinition中MaxHeight在一定条件下失效    xmlns
=”http://schemas.microsoft.com/winfx/2006/xaml/presentation”
[WPF Bug清单]之(8)——RowDefinition中MaxHeight在一定条件下失效    xmlns:x
=”http://schemas.microsoft.com/winfx/2006/xaml”
[WPF Bug清单]之(8)——RowDefinition中MaxHeight在一定条件下失效    Title
=”MaxHeight of RowDefinition NOT Effct”
[WPF Bug清单]之(8)——RowDefinition中MaxHeight在一定条件下失效    WindowStartupLocation
=”CenterScreen”
[WPF Bug清单]之(8)——RowDefinition中MaxHeight在一定条件下失效    Height
=”240″ Width=”300″
[WPF Bug清单]之(8)——RowDefinition中MaxHeight在一定条件下失效    ResizeMode
=”NoResize”>
[WPF Bug清单]之(8)——RowDefinition中MaxHeight在一定条件下失效    
<Grid>
[WPF Bug清单]之(8)——RowDefinition中MaxHeight在一定条件下失效        
<Grid.RowDefinitions>
[WPF Bug清单]之(8)——RowDefinition中MaxHeight在一定条件下失效            
<RowDefinition/>
[WPF Bug清单]之(8)——RowDefinition中MaxHeight在一定条件下失效            
<RowDefinition Height=”5″/>
[WPF Bug清单]之(8)——RowDefinition中MaxHeight在一定条件下失效            
<RowDefinition Height=”Auto” MaxHeight=”50″/>
[WPF Bug清单]之(8)——RowDefinition中MaxHeight在一定条件下失效        
</Grid.RowDefinitions>
[WPF Bug清单]之(8)——RowDefinition中MaxHeight在一定条件下失效        
<DockPanel Margin=”12″>
[WPF Bug清单]之(8)——RowDefinition中MaxHeight在一定条件下失效            
<TextBlock DockPanel.Dock=”Top” TextWrapping=”Wrap”
[WPF Bug清单]之(8)——RowDefinition中MaxHeight在一定条件下失效                       Text
=”XXX”/>
[WPF Bug清单]之(8)——RowDefinition中MaxHeight在一定条件下失效            
<Button Content=”Show Large Tab”
[WPF Bug清单]之(8)——RowDefinition中MaxHeight在一定条件下失效                Click
=”OnShowLargeTabClick”
[WPF Bug清单]之(8)——RowDefinition中MaxHeight在一定条件下失效                HorizontalAlignment
=”Center”
[WPF Bug清单]之(8)——RowDefinition中MaxHeight在一定条件下失效                VerticalAlignment
=”Center” Width=”125″/>
[WPF Bug清单]之(8)——RowDefinition中MaxHeight在一定条件下失效        
</DockPanel>
[WPF Bug清单]之(8)——RowDefinition中MaxHeight在一定条件下失效        
<GridSplitter Grid.Row=”1″ HorizontalAlignment=”Stretch”/>
[WPF Bug清单]之(8)——RowDefinition中MaxHeight在一定条件下失效        
<TabControl Grid.Row=”2″ Margin=”12″>
[WPF Bug清单]之(8)——RowDefinition中MaxHeight在一定条件下失效            
<TabItem Header=”Empty Tab”/>
[WPF Bug清单]之(8)——RowDefinition中MaxHeight在一定条件下失效            
<TabItem Header=”Large Tab” Name=”largeTab”>
[WPF Bug清单]之(8)——RowDefinition中MaxHeight在一定条件下失效                
<ListBox Name=”listBox”/>
[WPF Bug清单]之(8)——RowDefinition中MaxHeight在一定条件下失效            
</TabItem>
[WPF Bug清单]之(8)——RowDefinition中MaxHeight在一定条件下失效        
</TabControl>
[WPF Bug清单]之(8)——RowDefinition中MaxHeight在一定条件下失效    
</Grid>
[WPF Bug清单]之(8)——RowDefinition中MaxHeight在一定条件下失效
</Window>
[WPF Bug清单]之(8)——RowDefinition中MaxHeight在一定条件下失效

 

注:RowDefinition的Height的默认值为*。 

为了避免多余代码产生不必要的误会,上面的代码中尽量减少了大小的设置。设置的Margin是为了美观。运行效果如下图。 

[WPF Bug清单]之(8)——RowDefinition中MaxHeight在一定条件下失效

图1. Startup

 

可能大家不知道50px有多大,大概就是现在灰线下的部分的高度。就是说点击Button之后,高度不应该有太大的变化。可是结果却是这样。 

[WPF Bug清单]之(8)——RowDefinition中MaxHeight在一定条件下失效

图2. Clicked

 

这时,如果拖一下上面的GridSplitter,那么Large Tab那个部分又会突然变小。

程序源代码 

 

同系列的其它文章:

[WPF Bug清单](序)与之(1)——可以多选的单选ListBox

[WPF Bug清单]之(2)——RadioButton的IsChecked绑定失效

[WPF Bug清单]之(3)——暗中创建文件的打开文件对话框

[WPF Bug清单]之(4)——点击RadioButton的空白没有反应

[WPF Bug清单]之(5)——隐藏模态对话框后变成非模态

[WPF Bug清单]之(6)——Button的IsCancel属性失效

[WPF Bug清单]之(7)——顽固的Error Template

[WPF Bug清单]之(9)——消失的光标

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/110943.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 向量投影证明[通俗易懂]

    向量投影证明[通俗易懂]a在b上的投影

    2022年10月31日
  • 英特尔CPU后缀「建议收藏」

    英特尔CPU后缀「建议收藏」X后缀X代表Extreme,中文意思是至尊级,代表同一时代性能最强的CPU。如Corei7-5960X、Corei7-4960X。X代表在同一代中只有一款CPU黄袍加身,地位至高无上。加上没有竞争对手可以望其项背,从露面都退出市场,期待的弑君者没有出现。SandyBridge时代到现在,竞争的天平一直向Intel倾斜。K后缀=解锁倍频且更高性能:自从SandyBridge时代Inte…

    2022年5月30日
  • 安装试用国产系统 ——中标麒麟V7.0

    安装试用国产系统 ——中标麒麟V7.0     安装试用国产系统——中标麒麟V7.0首先自然是下载个系统的安装镜像了。下载完镜像,创建一个新的虚拟机 配置好镜像文件,开始安装了 这个倒是和一般的Linux系统没什么区别,反正中标麒麟也是基于Linux的。 加载十几秒,下面开始正式安装:  使用默认的分区就好了。  安装完成,重启一下。  然后是对系统进行简单的配置,结果忘截图了。。。。登陆进去。 中标麒麟系统的默认桌面:是不…

    2022年10月20日
  • 第一课 Delphi7完全自学教程「建议收藏」

    第一课 Delphi7完全自学教程「建议收藏」   首先声明,我会以delphi7教程为主,可能会在这方面用的时间比较多,废话不多说了,今天给大家带来delphi7中最基本的面向对象程序设计语言。delphi是可视化的编程语言,delphi利用提供可视的"组件",像组件里添加一些功能或命令,该程序就有了自己所拥有的功能,比如说给组件“Button1”添加双击事件,然后干什么了?给窗体起个名字,或给按钮起一个名字都可以。这就是可视…

    2022年6月20日
  • 语音信号处理分类

    语音信号处理分类人与人之间的通信:语音压缩与编码压缩语音信号的传输带宽或者降低电话信道的传输码率解释:比特率=位深X采样率X信道个数,比特率越高,还原度越高,速度越慢。所以降低编码比特率,可以节省频率资源。第一类人与机器之间的通信:语音合成机器讲话,人接听文语转换(TTS)系统,主要关注可理解度,自然度,可懂度,逼真度(情感语音合成)第二类人与机器之间的通信:语音识别人讲话,机器接…

    2022年5月26日
  • Keycode对照表(键码对照表)

    Keycode对照表(键码对照表)

    2021年10月26日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号