2012-12-18 43 views
1

我有一個像Xaml一樣的頁面,下面我想使用它作爲ModalDialog。使子控件比父控件更不透明

問題是,當我彈出對話框,持有內容的第二個網格的不透明度不會更改回100%,並且我從頁面中看到它在哪裏彈出基礎控件。欲瞭解更多細節,請參閱截圖。

有沒有一種方法可以將第二個網格的不透明度更改爲無法控制背後的控件的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

回答

0

下面是地鐵的解決方案:

請移除兩個元件的Opacity屬性並從ModalDialog類的後面的代碼中使用以下代碼:

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

方法FromArgb用於分別指定透明度紅色綠色和藍色值,並且可以從rancge 0-255 ..請根據烏爾舒適:)

+0

ü也可以ARGB格式設置的背景屬性在XAML測試 即: 背景=「#AARRGGBB」哪裏AA->範圍爲0- > 99和RRGGBB是十六進制顏色代碼。 – Anobik