2016-11-29 2 views
1

enter code here 안녕하세요 저는 UWP 응용 프로그램에서플라이 아웃을 사용하고 있습니다. 버튼을 클릭하면 플라이 아웃에있는 항목 목록이 표시됩니다. 버튼을 클릭하면 플라이 아웃이 열립니다. 하지만 목록이 비어 있지 않으면 플라이 아웃을 열려고합니다. 목록이 비어 있으면 플라이 아웃을 숨기려고합니다.특정 조건에서 UWP 플라이 아웃을 숨기는 방법

이 코드는 작성했지만 숨기기 기능이 작동하지 않습니다. 누구나 이것에 대해 생각할 수 있습니다.

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 코드 : 당신은 플라이 아웃을 열 필요가

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

이 방법에 Button 리소스로 플라이 아웃을 정의 할 수 있습니다

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

여기 작성한 코드를 게시 할 수 있습니까? –

답변

2

자신을 선택하지만 언제 열지 정의 할 수 있습니다.

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

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

고마워요. 토마스 – Sagar

관련 문제