簡體   English   中英

隱藏按鈕的彈出

[英]Hiding flyout of a button

我得到了用於項目的DataTemplate ,並且在此DataTemplate中,我具有以下代碼:

<Button x:Name="DoneButton"
     Style="{StaticResource ButtonStyle1}"
     BorderThickness="1"
     Margin="0,0,20,0"
     HorizontalAlignment="Left"
     VerticalAlignment="Center"
     Grid.Column="2"
     Grid.Row="1"
     Width="50"
     Height="50"
     >
     <Image Source="Images/WPIcons/checked.png" Width="30" Height="30" Margin="-10,0,-10,0" />
           <Button.Flyout>
               <Flyout x:Name="myFly">
                    <Grid Margin="10">
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="Auto" />
                        </Grid.RowDefinitions>
                        <TextBlock Grid.Row="0" x:Uid="myNote" Text="Note: " Style="{StaticResource myText}" />
                        <TextBox Grid.Row="1" TextWrapping="Wrap" AcceptsReturn="True" Height="40" x:Name="note" Text="{Binding RecentNote, Mode=TwoWay}" Style="{StaticResource TextBoxStyle1}"/>
                        <Button x:Name="CompletedButton"
                                        Command="{Binding CompletedCommand}"
                                        CommandParameter="{Binding}"
                                        Style="{StaticResource ButtonStyle1}"
                                        BorderThickness="1"
                                        HorizontalAlignment="Left"
                                        VerticalAlignment="Center"
                                        Grid.Row="2"
                                        Click="CompletedButton_Click"
                                        Content="Done"
                                        MinWidth="80"
                                        Height="40"
                                        />
                  </Grid>
              </Flyout>
        </Button.Flyout>
</Button>

在項目的彈出按鈕被調用並將用戶的數據放入其中之后,我想在用戶單擊“完成”按鈕( x:Name =“ CompletedButton” )時隱藏此彈出按鈕。

我試圖在后面的代碼中這樣做:

private void CompletedButton_Click(object sender, RoutedEventArgs e)
{
    Button button = (Button)sender;
    Grid grid = (Grid)VisualTreeHelper.GetParent(button);
    Flyout fly = (Flyout)VisualTreeHelper.GetParent(grid);
    fly.Hide();
}

但由於無法將ContentPresenter強制轉換Flyout,所以出現了強制轉換例外,所以我想這不是我想要的方式。 我如何隱藏此彈出窗口?

我通過在頁面上創建全局DependencyObject解決了它。 因此,當您單擊按鈕時,它會保留下來,我可以在其彈出窗口中將其彈出窗口從按鈕調用hide() 有點丑陋,但是像魅力一樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM