2016-11-29 40 views
1

enter code here嗨我在我的UWP應用程序中使用Flyout。在按鈕上單擊我顯示彈出菜單中的項目列表。當我點擊按鈕時,彈出窗口就會打開。 但是這裏我想在列表不爲空時打開彈出窗口。如果列表爲空,我想隱藏彈出窗口。如何在特定條件下隱藏UWP彈出窗口

爲此,我編寫了代碼,但隱藏不起作用。 Can任何人都有這個想法。

XAML代碼:

<Button TabIndex="4" Background="#212121" Name="btnCashPay" Click="btnCashPay_Tapped" HorizontalAlignment="Center" VerticalAlignment="Center" BorderBrush="#212121" BorderThickness="0" Margin="0,-5,0,0" > 
<Image HorizontalAlignment="Center" VerticalAlignment="Center" Source="/Images/pay_bill(30_30).png" Stretch="None"/> 
    <Button.Flyout> 
<Flyout x:Name="flyout" FlyoutPresenterStyle="{StaticResource Flyoutstyle}"> 

    <StackPanel> 
<TextBlock Grid.Row="0" Height="35" HorizontalAlignment="Center" Foreground="DarkTurquoise" FontWeight="SemiBold">Please Add Free Items To Cart </TextBlock> 
<Border x:Name="dgFreeItemsug" BorderThickness="0.5" Visibility="Visible" BorderBrush="LightSlateGray" Grid.Row="1" Background="White" Height="200" HorizontalAlignment="Stretch" VerticalAlignment="Top" Margin="10,-16,5,0"> 
<ScrollViewer x:Name="svFreeItemSugg" HorizontalScrollBarVisibility="Hidden" Padding="0" VerticalScrollBarVisibility="Auto" VerticalAlignment="Top" HorizontalAlignment="Stretch" Grid.Column="0" Grid.Row="0" Margin="0,0,0,0"> 

<controls:DataGrid x:Name="dgFreeItem" Height="200" HorizontalAlignment="Stretch" 
    controls:DataGridExtensions.UseSingleSelectionAndDeselection="true" VerticalAlignment="Top" RowBackgroundEvenBrush="White" RowBackgroundOddBrush="White" Margin="0,0,0,0" Navigate="dgFreeItem_Navigate"> 
    <controls:DataGrid.Columns> 
<controls:DataGridTextColumn x:Name="freeitemddesc" Width="1*" Binding="{Binding DealSku}"> 
</controls:DataGridTextColumn> 
    <controls:DataGridTextColumn x:Name="freeitemprice" Width="2*" Binding="{Binding DealDescription}"> 
    </controls:DataGridTextColumn> 
    </controls:DataGrid.Columns> 
</controls:DataGrid> 
</ScrollViewer> 
    </Border> 
    </StackPanel> 
</Flyout> 
</Button.Flyout> 
</Button> 

xaml.cs代碼:

private void btnCardPay_Tapped(object sender, RoutedEventArgs e) 
{ 
    txtcardmessage.Text = string.Empty; 
    media.Play(); 
    if (objfreeitemlist == null) 
     btnCardPay.Flyout.Hide(); 
} 
+0

你可以發佈你寫的代碼嗎? –

回答

2

您可以定義彈出按鈕,按鈕資源

<Button x:Name="MyButton" Content="Button" Tapped="Button_Tapped" > 
    <Button.Resources> 
     <Flyout x:Name="MyFlyout"> 
      .... 
     </Flyout> 
    </Button.Resources> 
</Button> 

這種方式,你必須打開彈出按鈕你自己,但你可以定義何時打開它。

private void Button_Tapped(object sender, TappedRoutedEventArgs e) 
{ 
    var button = sender as Button; 

    if (button != null && objfreeitemlist != null) 
    { 
     MyFlyout.ShowAt(button); 
    } 
} 
+0

謝謝。托馬斯 – Sagar

相關問題