public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
//显示主窗体遮罩层
//由于slider2在visualtree的上层找到的AdornerLayer控件是window的AdornerLayer,
//所以看起来 它就显示在了窗体上
ShowModal(slider2);
}
private void Button_Click1(object sender, RoutedEventArgs e)
{
//显示Border遮罩层
ShowModal(slider1);
}
public async void ShowModal(Visual visual)
{
//获取visual上面的第一个AdornerLayer
AdornerLayer adornerLayer = AdornerLayer.GetAdornerLayer(visual);
//创建我们定义的Adorner
var _adorner = new SimpleAdorner(adornerLayer)
{
//添加一个半透明的Border
Child = new Border()
{
Background = new SolidColorBrush(Color.FromArgb(150, 0, 0, 0)),
//border内有一个loading控件,就是前两天文章中创建的那个Loading控件
Child = new LoadingCircle()
{
Width = 40,
Height = 40
}
}
};
//添加到adornerLayer装饰层上
adornerLayer.Add(_adorner);
//等待3秒,模拟耗时操作
await Task.Delay(3000);
//移除
adornerLayer.Remove(_adorner);
}
}