我的问题是如何处理4个按钮的屏幕位置(WPF)。它们是垂直组织的,例如:
BUTTON1 BUTTON2 BUTTON3 BUTTON4
由于有24种可能的订单组合(一种可能是可见的而另一种可能不在某些情况下)我想知道您是否有一个智能解决方案来订购它们。
基本上我必须隐藏非活动按钮并在屏幕中重新排列边距,以便向用户显示新订单。
实际上我正在处理System.Windows.Visibility。例如,如果BUTTON1未激活,则BUTTON2必须是订单中的第一个,依此类推......
我希望我的问题很清楚,并收到一些有用的提示。
提前致谢
答案 0 :(得分:3)
有关详细信息,请查看MSDN上的StackPanel
class。当您在Panel
和Button
之间切换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)
将StackPanel
与Orientation="Vertical"
一起使用。你不必处理利润。将Visibility
设为Collapsed
。 Hidden
的值将为每个按钮保留空间,即使不可见。
答案 3 :(得分:0)
将可见性绑定到活动属性,您不必编写任何后端代码。绑定应该为你处理一切
<Button x:Name="Button1" Content="Button1" Visibility={Binding IsButton1Active,Converter={StaticResource BooleanToVisibilityConverter}}/>
等等。