マスクをメッセージボックスWPF

考え

容器に、親フォームのコンテンツを取得し、その後、容器に半透明層を配置する。親フォームに割り当てられた容器の内容全体。

メッセージウィンドウがポップアップ表示された場合

///

///ポップアップメッセージボックス

///

///ニュース

///親フォーム

公共の静的な無効に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

おすすめ

転載: blog.csdn.net/weixin_44589117/article/details/93326677