0

我正在尝试显示一个带有旋转图标的模式对话框,以指示背景中发生的事情。

我正在Popup为对话框使用一个,并且我UserControl为内容构建了一个。

显示Popup很好,但背景是透明的。内容按预期显示。理想情况下,我想要一个黑色背景,弹出窗口上有一个白色边框。

这是我的UserControl

<StackPanel VerticalAlignment="Center">
    <Image Name="WaitImage" Source="/Resources/Images/Wait/70px/Loader-01.png" Stretch="None"></Image>
    <StackPanel Name="MessPanel" Visibility="Collapsed">
        <TextBlock Name="MessText" Foreground="White" TextAlignment="Center" TextWrapping="Wrap"></TextBlock>
        <Button Name="MessBtn" Content="OK" Click="MessBtn_Click" Width="150"></Button>
    </StackPanel>
</StackPanel>

4

2 回答 2

0

您没有向 StackPanel 添加边框或背景。

像这样的东西应该工作。根据您的应用程序,您可能只想使用真实颜色,而不是基于设备主题的颜色。

<Border BorderThickness="2" BorderBrush="{StaticResource PhoneContrastForegroundBrush}">
<StackPanel Background="{StaticResource PhoneChromeBrush}" VerticalAlignment="Center">
    <Image Name="WaitImage" Source="/Resources/Images/Wait/70px/Loader-01.png" Stretch="None"></Image>
    <StackPanel Name="MessPanel" Visibility="Collapsed">
        <TextBlock Name="MessText" Foreground="White" TextAlignment="Center" TextWrapping="Wrap"></TextBlock>
        <Button Name="MessBtn" Content="OK" Click="MessBtn_Click" Width="150"></Button>
    </StackPanel>
</StackPanel>
</Border>
于 2012-06-15T02:16:20.893 回答
0

我没有看到您在 xaml 中定义背景或边框。如果需要背景和边框,则必须指定一个。我还建议做一个“覆盖”而不是弹出窗口。覆盖允许您禁用页面的其余部分。

  <Grid x:Name="Overlay" Visibility="Collapsed">
        <Grid Background="{StaticResource PhoneBackgroundBrush}" Opacity=".6"/>
        <Border VerticalAlignment="Center" BorderThickness="2"
            Background="{StaticResource PhoneBackgroundBrush}" BorderBrush="{StaticResource PhoneForegroundBrush}"
            CornerRadius="5" Visibility="Visible" Margin="12">
            <StackPanel VerticalAlignment="Center">
                <Image Name="WaitImage" Source="/Resources/Images/Wait/70px/Loader-01.png" Stretch="None"/>
                <StackPanel Name="MessPanel" Visibility="Collapsed">
                    <TextBlock Name="MessText" Foreground="White" TextAlignment="Center" TextWrapping="Wrap"/>
                    <Button Name="MessBtn" Content="OK" Click="MessBtn_Click" Width="150"/>
                </StackPanel>
            </StackPanel>
        </Border>
    </Grid>

通过设置其可见性来显示覆盖

Overlay.Visibility = Visibility.Visible;
于 2012-06-15T02:22:39.470 回答