网格忽略WPF中的ClipToBounds
给定一个非常基本的Grid
,其中ColumnDefinition
的宽度设置为*
,忽略该按钮所包含的硬编码宽度属性并剪裁这些子元素。它们没有被裁剪的宽度设置为Auto
。网格忽略WPF中的ClipToBounds
如果在每个ColumnDefinition
上设置了正确的MinWidth
,但是这不完全是动态的,则会阻止此剪辑。
我做错了什么,或者这是最好的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>
我想的按钮显示为每所述第一图像时有空间,并作为图像3时没有(即在任何情况下都没有限幅)。
啊,我如下解决它:
的关键是在ColumnDefinition
的MinWidth
属性。
<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>
只需添加一个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>
嗨Arnaud,谢谢你的回答。我一直在寻找一种动态的方法,不需要硬编码一个文字“最小宽度”。请参阅我对此解决方案的回答。 – maxp
嗨马克斯,技术上这是你的问题的正确答案,但我可以理解你想要的东西,你没有表达。无论如何,MinWidth是答案。 –
当窗口最小化时,您是否可以添加图表以获得想要发生的情况?总是120宽度的按钮,或者你希望它们缩小窗口大小? thx – SWilko
@SWilko更新了问题 – maxp