アプリケーションで「モーダル」タイプのイベントをシミュレートしようとしています。これにより、透明な背景の「薄暗い」感触と、コンテンツが含まれるフォームが得られます。
私が直面している問題は、オーバーレイキャンバスに不透明度を設定していて、それが子フォームに継承されていることです。
これは、以下のスクリーンショットに示されています。背景アイテムのコーナーがまだ見えます。
私が使用しているコードは次のとおりです。
protected void Draw(DrawingContext drawingContext)
{
//Crate Overlay Canvas
Canvas canvas = new Canvas();
canvas.Width = ((Canvas)this.AdornedElement).ActualWidth;
canvas.Height = ((Canvas)this.AdornedElement).ActualHeight;
canvas.Opacity = .4;
canvas.Background = new SolidColorBrush(Colors.Black);
//Create Form Panel
StackPanel panel = new StackPanel();
panel.Background = new SolidColorBrush(Colors.White);
panel.Width = 400;
panel.Height = 200;
panel.Opacity = 1; //Just to make sure
Button button = new Button();
button.Content = "Test Button";
button.Height = 30;
panel.Children.Add(button);
Canvas.SetLeft(panel, canvas.Width/2);
Canvas.SetTop(panel, canvas.Height/2);
canvas.Children.Add(panel);
Content = canvas;
}