考え
容器に、親フォームのコンテンツを取得し、その後、容器に半透明層を配置する。親フォームに割り当てられた容器の内容全体。
メッセージウィンドウがポップアップ表示された場合
///
///ポップアップメッセージボックス
///
///ニュース
///親フォーム
公共の静的な無効にShowDialog(文字列メッセージ、ウィンドウの所有者)
{
//マスク
=新しいグリッドグリッド層(){
背景=新しいたSolidColorBrush(Color.FromArgb(128、0、0、0))}。
//親フォームのオリジナルコンテンツ
UIElementのオリジナル= owner.Content
のUIElementとして。
owner.Content = NULL;
//容器Grid
グリッドコンテナ=新しいグリッド()。
container.Children.Add(オリジナル); //は、オリジナルのコンテンツを置きます
container.Children.Add(層); //は、マスクの上に層を置きます
//親フォームに割り当てられ、元のコンテンツとマスクコンテナが装備されます
owner.Content =コンテナ。
//ポップアップメッセージボックス
メッセージボックスボックス=新しいメッセージボックス(){
所有者=所有者}。
box.tbc_message.Text =メッセージ。
box.ShowDialog();
}
メッセージボックスが閉じられています
///
///フォームがイベントをクローズ
///
プライベート無効WINDOW_CLOSED(オブジェクト送信者、
EventArgsの電子)
{
//容器Grid
格子
グリッド=グリッドとしてthis.Owner.Content。
//親フォームのオリジナルコンテンツ
UIElementのオリジナル=
のUIElementとしてVisualTreeHelper.GetChild(グリッド、0);
//コンテナの元の内容の親形態は、グリッドを削除します
grid.Children.Remove(オリジナル)。
//親フォームを割り当てます
this.Owner.Content = ORIG