2015-03-28 9 views
5

ho un pop-up e voglio chiuderlo quando tocco ovunque fuori dal pop-up. ho cercato e tutti mi hanno consigliato di usare la proprietà IsLightDismissEnabled; se mi tocco esterno, rimuoverà solo l'OUP pop lasciando tutto inattiva con un grigio come schermo come se si pretende molto chiudere il pop-up completamente questo è il mio frammento di codice:IsLightDismissEnabled = "True" in realtà non sta chiudendo il popup

<Popup x:Name="logincontroler" IsOpen="False" Margin="0,190,896,276" IsLightDismissEnabled="True"> 
      <StackPanel Height="300" Width="470" x:Name="popup" FlowDirection="RightToLeft"> 
       <Grid Width="470" Background="White" > 
        <Grid.RowDefinitions> 
         <RowDefinition Height="70"/> 
         <RowDefinition Height="*"/> 
        </Grid.RowDefinitions> 
        <RichEditBox Grid.Row="1" Height="250" TextWrapping="Wrap" FontSize="20" Name="notesPopupTextBox" FlowDirection="LeftToRight"/> 
        <StackPanel Grid.Row="0" Orientation="Horizontal" Background="#FFE3E3E5"> 
         <Button Name="CanclePopupButton" Content="Cancel" Width="64" Height="64" Click="CanclePopupButton_Click" /> 
         <Button Name="ClearNotePopupButton" Content="Clear" Width="64" Height="64" Click="ClearNotePopupButton_Click" /> 
         <Button Name="saveNoteButton" Content="Save" Width="64" Height="64" Click="saveNoteButton_Click" /> 

         <TextBlock FontWeight="Medium" FontSize="40" Foreground="#2a2a86" Margin="170 12 0 0">Note</TextBlock> 
        </StackPanel> 
       </Grid> 
      </StackPanel> 
     </Popup> 

questo è il mio codice per la events

private void ShowButton_Click(object sender, RoutedEventArgs e) 
    { 
     logincontroler.IsOpen = true; 
     flipView1.IsEnabled = false; 
    } 
    private void CanclePopupButton_Click(object sender, RoutedEventArgs e) 
    { 
     logincontroler.IsOpen = false; 
     flipView1.IsEnabled = true; 
    } 

Mi manca qualcosa? grazie in anticipo

risposta

1

Sei sicuro di non avere un altro codice nell'app che non ci stai mostrando?
Non ci dovrebbe essere una casella grigia dietro il Popup.
Ho appena testato il codice su un'app vuota di Windows 8.1 (XAML + C#) e funziona perfettamente.

provare a creare e vuoto di Windows 8.1 App e ti fanno MainPage in questo modo:

MainPage.xaml

<Page 
    x:Class="App19.MainPage" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="using:App19" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d" 
    RequestedTheme="Light"> 

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 
     <Popup x:Name="logincontroler" IsOpen="False" Margin="0,190,896,276" IsLightDismissEnabled="True"> 
      <StackPanel Height="320" Width="470" x:Name="popup" FlowDirection="RightToLeft"> 
       <Grid Width="470" Background="BurlyWood" > 
        <Grid.RowDefinitions> 
         <RowDefinition Height="70"/> 
         <RowDefinition Height="*"/> 
        </Grid.RowDefinitions> 
        <RichEditBox Grid.Row="1" Height="250" TextWrapping="Wrap" FontSize="20" Name="notesPopupTextBox" FlowDirection="LeftToRight"/> 
        <StackPanel Grid.Row="0" Orientation="Horizontal" Background="#FFE3E3E5"> 
         <Button Name="CanclePopupButton" Content="Cancel" Width="64" Height="64" /> 
         <Button Name="ClearNotePopupButton" Content="Clear" Width="64" Height="64" /> 
         <Button Name="saveNoteButton" Content="Save" Width="64" Height="64" /> 

         <TextBlock FontWeight="Medium" FontSize="40" Foreground="#2a2a86" Margin="170 12 0 0">Note</TextBlock> 
        </StackPanel> 
       </Grid> 
      </StackPanel> 
     </Popup> 
     <Button Content="Show Popup" HorizontalAlignment="Left" Margin="692,260,0,0" VerticalAlignment="Top" Click="ShowButton_Click"/> 
    </Grid> 
</Page> 

MainPage.xaml.cs

using Windows.UI.Xaml; 
using Windows.UI.Xaml.Controls; 

namespace App19 
{ 
    /// <summary> 
    /// An empty page that can be used on its own or navigated to within a Frame. 
    /// </summary> 
    public sealed partial class MainPage : Page 
    { 
     public MainPage() 
     { 
      this.InitializeComponent(); 
     } 

     private void ShowButton_Click(object sender, RoutedEventArgs e) 
     { 
      logincontroler.IsOpen = true; 
     } 
    } 
} 

Questo ha lavorare.
E confrontare questo con la tua soluzione dovrebbe aiutarti a trovare il problema. In caso contrario, modifica la tua domanda con ulteriori informazioni. (altro codice)

Nota: ho rimosso gli eventi di clic dal popup, non erano necessari per esemplificare il problema, giusto?

+0

questo funziona molto bene, ma voglio anche disabilitare la flipview su showButton_click. quando aggiungo questo, la proprietà isLightdismissed non funziona più correttamente. ho modificato il mio codice e inserito gli eventi. grazie –

+0

Perché hai bisogno di disabilitare la flipview? Non dovrebbe essere possibile interagire con esso durante la visualizzazione del popup. Puoi anche aggiungere il codice con Flipview? –

+0

grazie mille, hai perfettamente ragione –

Problemi correlati