为什么我的弹出背景透明?

时间:2012-06-14 23:50:31

标签: c# windows-phone-7

我正在尝试显示带有旋转图标的模态对话框,以指示后台发生的事情。

我在对话框中使用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>

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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;