按钮位置

时间:2014-05-07 09:05:36

标签: c# wpf xaml

我的问题是如何处理4个按钮的屏幕位置(WPF)。它们是垂直组织的,例如:

BUTTON1 BUTTON2 BUTTON3 BUTTON4

由于有24种可能的订单组合(一种可能是可见的而另一种可能不在某些情况下)我想知道您是否有一个智能解决方案来订购它们。

基本上我必须隐藏非活动按钮并在屏幕中重新排列边距,以便向用户显示新订单。

实际上我正在处理System.Windows.Visibility。例如,如果BUTTON1未激活,则BUTTON2必须是订单中的第一个,依此类推......

我希望我的问题很清楚,并收到一些有用的提示。

提前致谢

4 个答案:

答案 0 :(得分:3)

有关详细信息,请查看MSDN上的StackPanel class。当您在PanelButton之间切换Visibility属性值时,此Visible控件会自动移动Collapsed位置...请务必使用Collapsed值而不是Hidden值,因为Collapsed设置在隐藏Button时不会保留<StackPanel> <Button ... /> <Button ... /> <Button ... /> <Button ... /> </StackPanel> 的空间:

Grid Panel

您可以轻松使用<Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <Button Grid.Row="0" ... /> <Button Grid.Row="1" ... /> <Button Grid.Row="2" ... /> <Button Grid.Row="3" ... /> </Grid> 执行相同操作:

{{1}}

答案 1 :(得分:0)

使用Visibility.Collapsed隐藏您要隐藏的按钮

答案 2 :(得分:0)

StackPanelOrientation="Vertical"一起使用。你不必处理利润。将Visibility设为CollapsedHidden的值将为每个按钮保留空间,即使不可见。

答案 3 :(得分:0)

将可见性绑定到活动属性,您不必编写任何后端代码。绑定应该为你处理一切

<Button x:Name="Button1" Content="Button1" Visibility={Binding IsButton1Active,Converter={StaticResource BooleanToVisibilityConverter}}/> 

等等。