//Simple PopUp
<Grid x:Name="Output"
HorizontalAlignment="Left" VerticalAlignment="Top"
Grid.Row="1">
<StackPanel>
<Button
Content="Show Popup (using Offset)" Click="ShowPopupOffsetClicked"
/>
</StackPanel>
<Popup VerticalOffset="50" HorizontalOffset="150"
x:Name="msiPopup">
<Border
BorderBrush="{StaticResource ApplicationForegroundThemeBrush}"
BorderThickness="2"
Background="{StaticResource ApplicationPageBackgroundThemeBrush}"
Width="200" Height="200">
<StackPanel
HorizontalAlignment="Center"
VerticalAlignment="Center">
<TextBlock Text="Simple Popup" FontSize="24.667"
HorizontalAlignment="Center" />
<Button Content="Close" Click="ClosePopupClicked"
HorizontalAlignment="Center" />
</StackPanel>
</Border>
</Popup>
</Grid>
private void ShowPopupOffsetClicked(object
sender, RoutedEventArgs e)
{
if
(!msiPopup.IsOpen)
msiPopup.IsOpen = true;
}
private void ClosePopupClicked(object sender,
RoutedEventArgs e)
{
if
(msiPopup.IsOpen)
msiPopup.IsOpen =
false;
}
//Show PopUp(with Parent) & Show PopUp(with
NoParent)
//PopupInputContent
<UserControl
x:Class="XAMLPopup.PopupInputContent"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:XAMLPopup"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas./markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300"
d:DesignWidth="400">
<Grid>
<StackPanel>
<TextBlock Text="Type some input" FontSize="24.667"
/>
<TextBox Width="300" Height="55"
/>
<Button Content="Save" Click="SimulateSaveClicked"
/>
</StackPanel>
</Grid>
</UserControl>
<Grid x:Name="Output"
HorizontalAlignment="Left" VerticalAlignment="Top"
Grid.Row="1">
<StackPanel>
<Button
Content="Show Popup (with Parent)"
Click="ShowPopupWithParentClicked" />
<Button
Content="Show Popup (no Parent)"
Click="ShowPopupWithoutParentClicked" />
</StackPanel>
<Popup x:Name="ParentedPopup" HorizontalOffset="200"
VerticalOffset="200">
<local:PopupInputContent />
</Popup>
</Grid>
private void ShowPopupWithParentClicked(object
sender, RoutedEventArgs e)
{
if
(!ParentedPopup.IsOpen)
ParentedPopup.IsOpen =
true;
}
private Popup nonParentPopup;
private void
ShowPopupWithoutParentClicked(object sender, RoutedEventArgs
e)
{
if
(nonParentPopup == null)
{
nonParentPopup = new
Popup();
nonParentPopup.Closed +=
(senderPopup, argsPopup) =>
{
nonParentPopup = null;
};
nonParentPopup.HorizontalOffset = 200;
nonParentPopup.VerticalOffset
= 580;
nonParentPopup.Child = new
PopupInputContent();
nonParentPopup.IsOpen =
true;
}
}
//PopUp as FlyOut & LightDismiss
<Grid x:Name="Output"
HorizontalAlignment="Left" VerticalAlignment="Top"
Grid.Row="1">
<StackPanel>
<Button
Content="Show Popup (with light dismiss)"
Click="ShowPopupLightDismissClicked" />
<Button
Content="Show Popup (with light dismiss and animations)"
Click="ShowPopupAnimationClicked" />
<Button
Content="Show Popup (simulating Settings)"
Click="ShowPopupSettingsClicked" />
</StackPanel>
<Popup x:Name="LightDismissSimplePopup"
HorizontalOffset="200" VerticalOffset="10"
IsLightDismissEnabled="True">
<Border
BorderBrush="Black" BorderThickness="2" Background="White"
Width="200" Height="200">
<StackPanel
HorizontalAlignment="Center"
VerticalAlignment="Center">
<TextBlock Text="Simple Popup" FontSize="24.667"
HorizontalAlignment="Center" />
<Button Content="Close" Click="ClosePopupClicked"
HorizontalAlignment="Center" />
</StackPanel>
</Border>
</Popup>
<Popup x:Name="LightDismissAnimatedPopup"
HorizontalOffset="200" VerticalOffset="10"
IsLightDismissEnabled="True">
<Popup.ChildTransitions>
<TransitionCollection>
<PopupThemeTransition />
</TransitionCollection>
</Popup.ChildTransitions>
<Border
BorderBrush="Black" BorderThickness="2" Background="White"
Width="200" Height="200">
<StackPanel
HorizontalAlignment="Center"
VerticalAlignment="Center">
<TextBlock Text="Simple Popup" FontSize="24.667"
HorizontalAlignment="Center" />
<Button Content="Close"
Click="CloseAnimatedPopupClicked" HorizontalAlignment="Center"
/>
</StackPanel>
</Border>
</Popup>
<Popup x:Name="SettingsAnimatedPopup"
IsLightDismissEnabled="True">
<Popup.ChildTransitions>
<TransitionCollection>
<PaneThemeTransition />
</TransitionCollection>
</Popup.ChildTransitions>
<Border
BorderBrush="Black" BorderThickness="2" Background="White"
x:Name="RootPopupBorder" Width="646">
<StackPanel
HorizontalAlignment="Center"
VerticalAlignment="Center">
<TextBlock Text="Simple Popup" FontSize="24.667"
HorizontalAlignment="Center" />
<Button Content="Close"
Click="CloseSettingsPopupClicked" HorizontalAlignment="Center"
/>
</StackPanel>
</Border>
</Popup>
</Grid>
private void ShowPopupLightDismissClicked(object
sender, RoutedEventArgs e)
{
if
(!LightDismissSimplePopup.IsOpen) { LightDismissSimplePopup.IsOpen
= true; }
}
private void ClosePopupClicked(object sender,
RoutedEventArgs e)
{
if
(LightDismissSimplePopup.IsOpen) { LightDismissSimplePopup.IsOpen =
false; }
}
private void ShowPopupAnimationClicked(object
sender, RoutedEventArgs e)
{
if
(!LightDismissAnimatedPopup.IsOpen) {
LightDismissAnimatedPopup.IsOpen = true; }
}
private void CloseAnimatedPopupClicked(object
sender, RoutedEventArgs e)
{
if
(LightDismissAnimatedPopup.IsOpen) {
LightDismissAnimatedPopup.IsOpen = false; }
}
private void ShowPopupSettingsClicked(object
sender, RoutedEventArgs e)
{
if
(!SettingsAnimatedPopup.IsOpen)
{
SettingsAnimatedPopup.HorizontalOffset =
Window.Current.Bounds.Width - RootPopupBorder.Width;
SettingsAnimatedPopup.IsOpen
= true;
}
}
private void CloseSettingsPopupClicked(object
sender, RoutedEventArgs e)
{
if
(SettingsAnimatedPopup.IsOpen) { SettingsAnimatedPopup.IsOpen =
false; }
}