【问题标题】:How to close WPF popup window?如何关闭 WPF 弹出窗口?
【发布时间】:2016-10-07 15:11:01
【问题描述】:

我正在 WPF 中开发项目,但在我的项目中使用弹出窗口时遇到问题。我在我的窗口中使用弹出控件,如下所示:-

<Popup HorizontalAlignment="Center" VerticalAlignment="Center" 
    AllowsTransparency="True" x:Name="popup" Placement="Center" 
    OpacityMask="#FFC86E6E" Closed="popup_Closed" >
    <Grid Height="auto" Width="auto" Margin="0" >
        <Grid.RowDefinitions>
            <RowDefinition Height="0.488*"/>
            <RowDefinition Height="0.512*"/>
        </Grid.RowDefinitions>

        <Frame x:Name="popupframe" Margin="0" Grid.Row="1"  />
        <Button Width="30" Height="30"  HorizontalAlignment="Right" 
                            Margin="0,0,10,-50" VerticalAlignment="Center" 
                            BorderThickness="0" BorderBrush="{x:Null}" 
                            ClickMode="Press" Click="Button_Click" 
                            Foreground="{x:Null}">
            <Button.Background>
                <ImageBrush ImageSource="Image/1329666144_button_cancel.png" Stretch="UniformToFill"/>
            </Button.Background>
        </Button>
            </Grid>
</Popup>

现在我在 wpf 中使用文本框和按钮创建新页面,并将此页面设置为弹出框显示如下:-

popupframe.Content=new SessionObjection();

现在我想用页面按钮关闭弹出窗口。我是怎么做到的……

【问题讨论】:

  • 您能否澄清一下:SessionObjection 中的代码是否应该关闭弹出窗口?

标签: c# wpf


【解决方案1】:

您可以通过将IsOpen 属性设置为false 来关闭弹出窗口。

【讨论】:

    【解决方案2】:

    你可以试试

    private void btnClosePopup_Click(object sender, RoutedEventArgs e)
            {
                popup.IsOpen = false;
            }
    

    【讨论】:

      【解决方案3】:

      如果您想在 XAML 代码中解决它,这里有一个可行的解决方案(将关闭按钮放在弹出窗口中):

          <Button Name="CloseThisPopUp" VerticalAlignment="Top" HorizontalAlignment="Right" Content="X">
                                              <Button.Triggers>
                                                  <EventTrigger RoutedEvent="Button.Click">
                                                      <EventTrigger.Actions>
                                                          <BeginStoryboard>
                                                              <Storyboard>
                                                                  <BooleanAnimationUsingKeyFrames Storyboard.TargetName="CloseThisPopUp" Storyboard.TargetProperty="IsOpen">
                                                                      <DiscreteBooleanKeyFrame KeyTime="0:0:0" Value="False" />
                                                                  </BooleanAnimationUsingKeyFrames>
                                                              </Storyboard>
                                                          </BeginStoryboard>
                                                      </EventTrigger.Actions>
                                                  </EventTrigger>
                                              </Button.Triggers>
                                          </Button>
      

      您也可以使用此代码打开弹出窗口,只需将 IsOpen 属性更改为“True”即可。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-02-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多