问题以及解决------在Window设置了SizeToContent=WidthAndHeight属性下怎么如何使RowDefinitions中设置的宽度比例生效

  问题:在写一个弹窗的时候做了如下的定义

<Grid.ColumnDefinitions>
                        <ColumnDefinition Width="0.4*"/>
                        <ColumnDefinition Width="0.4*"/>
                        <ColumnDefinition Width="30"/>
</Grid.ColumnDefinitions>

启动界面后发现第一列与第二列没有实现预想中的1:1的比例,尝试过写死宽度,但是这样就失去了自适应的功能。

    解决方法:   后来,经过一番检查,发现在预定义的window样式里面有这么一句话 SizeToContent=WidthAndHeight,这句话的含义,就如字面上的意思一样,窗口的宽度与高度是由窗口内的内容决定了,在这个大条件下,我再里面设置的列宽比例才没有到预期的目标。

      于是我想到了那干脆让第二列的宽度与第一列保持一致得了,又加上WPF本身的binding属性,所以我再第二列的属性中,增加了这么一句话  Width="{Binding ActualWidth,ElementName=tbTag(第一列控件的名字),Mode=OneWay}" ,这样就解决了比例的问题。

 

    一些东西果然是要到用的时候才会知道自己有没有掌握。

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