В этой ситуации я добавляю сетку или границу к странице с прозрачным фоном и IsHitTestVisible = True. Затем вы можете добавить свое изображение и т. Д. В родительский элемент управления (Сетка / Граница).
Вы должны убедиться, что родительский элемент управления охватывает всю страницу, а затем просто центрировать диалог внутри этого элемента управления. При переключении видимости родительского элемента управления прозрачный фон будет перекрывать другие элементы управления на странице, эффективно отключая их.
Вот пример. UxMessageGrid - это родительский элемент управления, а Border - это фактический диалог. Затем вам просто нужно убедиться, что это последний элемент управления, добавленный к корневому элементу, и переключить uxMessageGrid.Visibility в вашем коде.
<Grid x:Name="uxLayoutRoot">
<Other Controls />
<Grid x:Name="uxMessageGrid"
Visibility="Collapsed"
Background="Transparent"
IsHitTestVisible="True">
<Border CornerRadius="0"
BorderThickness="1"
VerticalAlignment="Center"
HorizontalAlignment="Center"
BorderBrush="{StaticResource PhoneForegroundBrush}"
Background="{StaticResource PhoneBackgroundBrush}">
<TextBlock Margin="15"
Text="Message..."
TextWrapping="Wrap"/>
</Border>
</Grid>
</Grid>