2013-05-22 3 views
1

В моем приложении Windows Store (C#) У меня есть Popup:нужно отключить Ui, когда всплывающее окно открыто

<Popup x:Name="LoginPopup" HorizontalAlignment="Center" VerticalAlignment="Center" Width="400" Height="300" IsOpen="{Binding Path=LoginPopupIsOpen}"> 
      <Popup.ChildTransitions> 
       <TransitionCollection> 
        <PopupThemeTransition /> 
       </TransitionCollection> 
      </Popup.ChildTransitions> 
</Popup> 

И когда Popup IsOpen мне нужно обрабатывать события только на Popup и заморозить все еще один интерфейс (в том числе AppBar) ,
Это возможно без создания всплывающего всплывающего окна с небольшой рабочей областью?

+0

Простой ответ: Нет. Я думаю, что у Каллисто или Калиберна есть тип взаимодействия CustomDialog, который сделает это за вас (и позволит вам установить контент произвольно), но кроме этого я не думаю, что есть простое свойство, которое вы можете настроить для этого. Вы можете добавить обложку Canvas или что-то в пользовательский класс страницы, а затем создать настраиваемый триггер Popup. –

ответ

0

Вы можете сделать это в файле xaml.cs, используя два свойства. В обработчик событий для всплывающего окна вы создаете вы можете включить следующие две строки

this.IsEnabled = false; 
this.ApplicationBar.IsVisible = false; 

в обработчике событий, где вы хотите, чтобы закрыть всплывающее окно, вы можете вернуть свойства обратно к своим первоначальным значениям.

this.IsEnabled = true; 
this.ApplicationBar.IsVisible = true; 
0

У меня также была аналогичная проблема, и я использовал это, чтобы справиться с этим.

 private void AlertMessage_Opened(object sender, object e) 
    { 
     UIBlock.Visibility = Windows.UI.Xaml.Visibility.Visible; 
    } 

    private void AlertMessage_Closed(object sender, object e) 
    { 
     UIBlock.Visibility = Windows.UI.Xaml.Visibility.Collapsed; 
    } 

Мое всплывающее имя AlertMessage и наступаю открывались и закрывались события с ним и поместить границу в XAML, которая охватывает весь экран, и ручка видимость через эти события.

<Border Name="UIBlock" Grid.Row="0" Grid.RowSpan="3" Background="#AAFFFFFF" Visibility="Collapsed"> 
    </Border> 

И не забудьте поместить эту границу, прежде чем всплывающее окно

0

Я сделал небольшое всплывающее окно, используя ниже code.Please попробовать это.

<Grid Background="Black" Opacity="0.7" Visibility="Collapsed" x:Name="gdalert" Height="{Binding Height, ElementName=gdfullpage}" Width="{Binding Width, ElementName=gdfullpage}"> 
      <Popup x:Name="settingpopup" Width="350" Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Center"> 
       <Border x:Name="settingbdrmain" Grid.Row="1" BorderThickness="0" Width="350" CornerRadius="15" > 
        <Grid x:Name="gdsubshape" Margin="0,10,0,10"> 
         <Grid.RowDefinitions> 
          <RowDefinition Height="Auto"></RowDefinition> 
          <RowDefinition Height="Auto"></RowDefinition> 
          <RowDefinition Height="Auto"></RowDefinition> 
          <RowDefinition Height="Auto"></RowDefinition> 
         </Grid.RowDefinitions> 
         <TextBlock Margin="0,0,0,0" Grid.Row="0" x:Name="dddf" FontSize="20" Text="" HorizontalAlignment="Center" TextAlignment="Center" FontFamily="Arial" FontWeight="Bold" TextWrapping="Wrap" ></TextBlock> 
<TextBlock x:Name="txtsettingalert" Text="" FontSize="20" TextAlignment="Center" Width="300" FontFamily="Arial" TextWrapping="Wrap" Foreground="Black" Grid.Row="1" ></TextBlock> 
         <Border x:Name="settingbdr" Width="350" Grid.Row="2" Height="1" Background="Red" BorderBrush="Black" > 
         </Border> 
         <Grid x:Name="btnpanel" Grid.Row="3" Height="60"> 
          <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="Auto"></ColumnDefinition> 
       <ColumnDefinition Width="Auto"></ColumnDefinition> 
       <ColumnDefinition Width="Auto">/ColumnDefinition> 
          </Grid.ColumnDefinitions> 
          <Button x:Name="settingok" Grid.Column="0" Height="50" HorizontalAlignment="Left"VerticalAlignment="Center" MinHeight="20" Width="170" Content="OK" FontSize="24" Foreground="Green" ></Button> 
          <Border x:Name="settingsubbdr" Grid.Column="1" BorderBrush="Green" Height="Auto" Width="1" ></Border> 
          <Button x:Name="sl" Grid.Column="2" Height="50" HorizontalAlignment="Right" VerticalAlignment="Center" MinHeight="20" Width="170" Content="Cancel" FontSize="24" Foreground="Green" ></Button> 
         </Grid> 
        </Grid> 
       </Border> 
      </Popup> 

Открыть для использования: - popname.IsOpen = true; gdalert.Visibility = Visibility.Visible;

Закрыть имя pop.IsOpen = false; gdalert.Visibility = Visibility.Collapse;

Смежные вопросы