2015-03-28 13 views
5

Mam pop-up i chcę go zamknąć, gdy dotknę nigdzie poza wyskakującym okienkiem. szukałem i wszyscy radzili mi korzystać z nieruchomości IsLightDismissEnabled; Jednak jeśli dotknę zewnątrz, usunie tylko OUP pop pozostawiając wszystko nieaktywną z szarym jak ekranie jakby nie robi zamknąć wyskakujące całkowicie to jest mój urywek kodu:IsLightDismissEnabled = "True" w rzeczywistości nie odrzuca wyskakującego okienka

<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> 

to jest mój kod dla wydarzenia

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; 
    } 

Czy brakuje mi czegoś? z góry dziękuję

Odpowiedz

1

Czy na pewno nie masz innego kodu w aplikacji, który nam nie pokazuje?
Za Popupem nie powinno być szarego pola.
Właśnie przetestowałem twój kod na pustej aplikacji Windows 8.1 (XAML + C#) i działa dobrze.

spróbuj utworzyć i Blank systemu Windows 8.1 App i sprawi, że tytułowa tak:

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; 
     } 
    } 
} 

ma to pracować.
Porównanie tego rozwiązania z rozwiązaniem powinno pomóc w znalezieniu problemu. Jeśli nie, po prostu edytuj swoje pytanie z większą ilością informacji. (więcej kodu)

Uwaga: Usunąłem zdarzenia kliknięcia z okna podręcznego, nie były one potrzebne, aby stanowić przykład problemu, prawda?

+0

działa to bardzo dobrze, ale chcę również wyłączyć flipview w showButton_click. kiedy to dodam, właściwość isLightdismissed nie działa już poprawnie. redagowałem mój kod i umieszczałem wydarzenia. dziękuję –

+0

Dlaczego musisz wyłączyć flipview? Nie powinno być możliwości interakcji z nim podczas wyświetlania okna podręcznego. Czy możesz również dodać kod za pomocą Flipview? –

+0

dziękuję bardzo, masz całkowitą rację, –

Powiązane problemy