在WPF中,我希望有一个按钮,当它被点击时,它会打开或关闭一个Popup,具体取决于它是否已经打开(如果它已打开则关闭它,如果它已关闭则打开它),我想要这样做纯粹是在XAML中。这可能吗?
谢谢,
罗伊
答案 0 :(得分:6)
是的,您需要使用ToggleButton而不是标准按钮。然后你应该能够将Popup.IsOpen属性绑定到ToggleButton.IsChecked属性。
如果你需要一个XAML片段来证明这一点,我可以在几分钟内制作一个。但这应该很简单。
答案 1 :(得分:1)
以下是作为行为实现的问题的nice solution,因此独立于ViewModel背后的代码。
答案 2 :(得分:0)
我只是解决了这个问题,就像@Charlie所说的那样。
这是我在page.xaml
文件中的代码。
<ToggleButton Name="MenuButton" Width="120" Height="40"/>
<Popup Width="130" Height="150" PlacementTarget="{Binding ElementName=MenuButton}" Placement="Bottom" AllowsTransparency="True" PopupAnimation="Fade" IsOpen="{Binding ElementName=MenuButton,Path=IsChecked}" StaysOpen="False">
<Border Background="Black" CornerRadius="10">
<Grid >
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Grid Grid.Row="0">
<Button Content="Log" Width="120" Height="40"/>
</Grid>
<Grid Grid.Row="1">
<Button Content="Shut Down" Width="120" Height="40"/>
</Grid>
<Grid Grid.Row="2">
<Button Content="About..." Width="120" Height="40"/>
</Grid>
</Grid>
</Border>
</Popup>