WPF弹出按钮问题

时间:2009-07-29 20:37:39

标签: wpf xaml button popup

在WPF中,我希望有一个按钮,当它被点击时,它会打开或关闭一个Popup,具体取决于它是否已经打开(如果它已打开则关闭它,如果它已关闭则打开它),我想要这样做纯粹是在XAML中。这可能吗?

谢谢,
罗伊

3 个答案:

答案 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>