给定一个非常基本的Grid,将ColumnDefinition的宽度设置为*,则忽略包含在其中的按钮的硬编码宽度属性,并剪切这些子元素,而不是将它们的宽度设置为Auto。
如果在每个MinWidth上设置了正确的ColumnDefinition,则会防止此裁剪,但这并不完全是动态的。
我是做错了什么,还是这是最好的WPF必须提供?

变成了

标记:
<Grid ShowGridLines="True" ClipToBounds="False">
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Button Grid.Column="0" Width="120">AAAAA</Button>
<Button Grid.Column="1" Width="120">BBBB</Button>
<Button Grid.Column="2" Width="120">CCCCC</Button>
</Grid>我希望按钮在有空间时按照第一张图像显示,在没有任何情况下(即没有剪裁)时作为图像三出现。

发布于 2016-03-29 12:07:28
啊,我已经解决了如下问题:
关键是MinWidth属性在ColumnDefinition中。
<Grid ShowGridLines="True">
<Grid.ColumnDefinitions>
<ColumnDefinition MinWidth="{Binding Path=ActualWidth, ElementName=spLeft }"></ColumnDefinition>
<ColumnDefinition MinWidth="{Binding Path=ActualWidth, ElementName=spMid }"></ColumnDefinition>
<ColumnDefinition MinWidth="{Binding Path=ActualWidth, ElementName=spRight }"></ColumnDefinition>
</Grid.ColumnDefinitions>
<StackPanel Background="Red" Grid.Column="0" Name="spLeft" HorizontalAlignment="Center">
<Button Width="120">AAAAA</Button>
</StackPanel>
<StackPanel Background="Green" HorizontalAlignment="Center" Grid.Column="1" Name="spMid">
<Button Width="120">BBBB</Button>
</StackPanel>
<StackPanel Background="Blue" Name="spRight" Grid.Column="2" HorizontalAlignment="Center">
<Button Width="120">CCCCC</Button>
</StackPanel>
</Grid>发布于 2016-03-29 12:06:08
只需向网格添加一个MinWidth:
<Grid ShowGridLines="True" ClipToBounds="False" MinWidth="360">
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Button Grid.Column="0" Width="120">AAAAA</Button>
<Button Grid.Column="1" Width="120">BBBB</Button>
<Button Grid.Column="2" Width="120">CCCCC</Button>
</Grid>https://stackoverflow.com/questions/36282993
复制相似问题