首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在WebView2控件上创建按钮?

如何在WebView2控件上创建按钮?
EN

Stack Overflow用户
提问于 2021-05-16 13:31:39
回答 1查看 573关注 0票数 2

我的WPF应用程序中有WebView2控件。我想以编程方式在光标位置创建一个按钮。

代码语言:javascript
复制
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控件上创建按钮?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-16 16:08:17

这有点棘手,但有可能。我将在XAML中这样做,但您可以根据需要重写它(create按钮或只需切换可见性)。

主要思想是用一个Button包一个PopUp。弹出不属于视觉和正在单独处理。

为了获得这种感觉,它是简单的按钮,你将需要处理一些边缘情况,如最小化,最大化,移动,关闭窗口。

因此,对于该窗口,请为ActivatedDeactivatedStateChangedLocationChanged事件附加事件处理程序(您还可以为后面的所有代码创建一个行为,以便在XAML中处理它)。

代码语言:javascript
复制
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?拍摄的

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67557287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档