如何在WebView2控件上创建按钮?
在WebView2控件上创建按钮需要一些技巧,但是是可行的。我将使用XAML来实现,但你可以根据需要进行重写(创建按钮或者仅切换可见性)。基本思路是将Button
包装在一个Popup
中。Popup不属于可视对象,需要单独处理。
为了让它看起来像一个普通的按钮,你需要处理一些特殊情况,如最小化、最大化、移动、取消激活窗口等。因此,对于窗口,需要为Activated
、Deactivated
、StateChanged
和LocationChanged
事件附加事件处理程序(你也可以创建一个行为来处理所有的代码)。
PopUp的移动参考了这里的方法:How can I move a WPF Popup when its anchor element moves?
private void Window_Activated(object sender, EventArgs e) { // Dispatcher用于使窗口先改变大小 Dispatcher.BeginInvoke((Action)(() => { popUpOver.IsOpen = true; })); } private void Window_Deactivated(object sender, EventArgs e) { popUpOver.IsOpen = false; } private void Window_StateChanged(object sender, EventArgs e) { popUpOver.IsOpen = this.WindowState != WindowState.Minimized; } private void Window_LocationChanged(object sender, EventArgs e) { var offset = popUpOver.HorizontalOffset; popUpOver.HorizontalOffset = offset + 1; popUpOver.HorizontalOffset = offset; }