如何在 WebView2 控件上创建按钮?
How to create button over WebView2 control?
我的 WPF 应用程序中有 WebView2 控件。
我想在我的光标位置以编程方式创建一个按钮。
Button ks = new Button();
ks.Width = 25;
ks.Height = 15;
ks.Content = "Add";
ks.Background = Brushes.Red;
ks.Margin = new Thickness(k.X, k.Y, 0, 0);
grid.Children.Add(ks);
但是我的按钮好像是在WebView2控件下创建的,我看不到。
如何在 WebView2 控件上创建按钮?
这有点棘手,但有可能。我会在 XAML 中完成,但您可以根据需要重写它(创建按钮或只是切换可见性)。
主要思想是用 PopUp
包裹 Button
。弹窗不属于视觉,单独处理
要获得它是简单按钮的感觉,您需要处理一些极端情况,例如最小化、最大化、移动、停用 window.
因此,对于 window,请为 Activated
、Deactivated
、StateChanged
和 LocationChanged
事件附加事件处理程序(您还可以为所有代码背后创建一个行为来处理它在 XAML).
private void Window_Activated(object sender, EventArgs e)
{
//Dispatcher we need for window change the size first
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;
}
<Popup x:Name="popUpOver" IsOpen="True" StaysOpen="True" Placement="RelativePoint" PlacementRectangle="300,300,500,500">
<Button Content="OVER" Width="100" Height="30"/>
</Popup>
PopUp 移动被采取:How can I move a WPF Popup when its anchor element moves?
我的 WPF 应用程序中有 WebView2 控件。 我想在我的光标位置以编程方式创建一个按钮。
Button ks = new Button();
ks.Width = 25;
ks.Height = 15;
ks.Content = "Add";
ks.Background = Brushes.Red;
ks.Margin = new Thickness(k.X, k.Y, 0, 0);
grid.Children.Add(ks);
但是我的按钮好像是在WebView2控件下创建的,我看不到。
如何在 WebView2 控件上创建按钮?
这有点棘手,但有可能。我会在 XAML 中完成,但您可以根据需要重写它(创建按钮或只是切换可见性)。
主要思想是用 PopUp
包裹 Button
。弹窗不属于视觉,单独处理
要获得它是简单按钮的感觉,您需要处理一些极端情况,例如最小化、最大化、移动、停用 window.
因此,对于 window,请为 Activated
、Deactivated
、StateChanged
和 LocationChanged
事件附加事件处理程序(您还可以为所有代码背后创建一个行为来处理它在 XAML).
private void Window_Activated(object sender, EventArgs e)
{
//Dispatcher we need for window change the size first
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;
}
<Popup x:Name="popUpOver" IsOpen="True" StaysOpen="True" Placement="RelativePoint" PlacementRectangle="300,300,500,500">
<Button Content="OVER" Width="100" Height="30"/>
</Popup>
PopUp 移动被采取:How can I move a WPF Popup when its anchor element moves?