让Child控件比Parent更不透明

时间:2012-12-18 08:00:40

标签: c# microsoft-metro winrt-xaml

我有一个像下面的Xaml中的页面,我想像ModalDialog一样使用。

问题在于,当我弹出对话框时,保存内容的第二个网格的不透明度不会变回100%,我从页面中看到它是Popuped的基础控件。有关详细信息,请参阅屏幕截图。

有没有办法可以将第二个网格的不透明度更改为100%,而它背后无法控制?

对于completneness,我添加了用于调出Popup的代码。

ModalDialog Xaml:

<Page>
    <Grid x:Name="RootPanel" Background="{StaticResource LucentBlue}" Opacity=".75">
         <Border >
              <Grid VerticalAlignment="Center"
                   Height="300" Background="{StaticResource PremiumBlue}" Opacity="1">

              </Grid>
         </Border>
    </Grid>
</Page>

托管页面背后的代码:

private Popup _saveDialog;
private void SaveSettingsCommandLogic(object obj)
{
    ModalDialog dlg = new ModalDialog();
    dlg.CloseRequested += DlgOnCloseRequested;
    _saveDialog = new Popup();
    _saveDialog.Child = dlg;
    _saveDialog.IsOpen = true;
}

Error Picture

1 个答案:

答案 0 :(得分:0)

以下是地铁的解决方案:

请删除这两个元素的Opacity属性,并从ModalDialog类的代码中删除,使用以下代码:

    public ModalDialog()
    {
        this.InitializeComponent();
        Color color = Color.FromArgb(150,255,0,0);
        RootPanel.Background = new SolidColorBrush(color);
    }

方法FromArgb用于分别指定透明度红绿色和蓝色值,并且可以从0-255开始。请根据您的方便测试:)