gpt4 book ai didi

c# - Avalonia UI 弹出窗口覆盖

转载 作者:行者123 更新时间:2023-12-01 23:59:05 33 4
gpt4 key购买 nike

我的问题很简单:

如何使用 avalonia 实现叠加弹出效果?

我的意思是我想使包含我的 UI 元素的整个面板变暗一点(尝试了不透明度属性,但它看起来不太好,OpacityMask 似乎只支持“透明”作为颜色,但如果可能的话,我想要半透明甚至模糊)。然后我想显示一个小弹出框。如果这是 CSS,我将能够执行 position: absolute;,但是我不知道如何使用 avalonia 执行此操作。

为了形象化我的意思,这里有一些 Windows 窗体应用程序的屏幕截图,我可以在其中实现预期的效果:

我的没有叠加效果的 UI: enter image description here

我的具有叠加效果的 UI: enter image description here

正如您所看到的,整个 UI 变暗了一点,而背景仍然可见(当使用 avalonia Opacity 属性时,效果不一样并且非常不一致,因为面板越多在给定位置上,背景似乎受 Opacity 的影响越小,它看起来就不太好。如果您愿意,我可以添加屏幕截图,说明稍后看起来有多糟糕.)

总结一下:

<强>1。我如何稍微和持续地使面板及其所有内容变暗(甚至模糊?),以便具有相同背景颜色的堆叠面板不会变得可见,只是因为透明度表现得很奇怪?

<强>2。与 CSS position: absolute; 等效的 avalonia 是什么,这样我就可以将 Pop-Up 放在屏幕中间和其他所有内容之上?

最佳答案

您可以使用与 WPF 中相同的技术:

<Window>
<Grid>
<DockPanel x:Name="YourMainContentGoesHere"/>
<Border IsVisible="{Binding IsPopupVisible}" Background="#40000000">
<YourPopupControlHere Width="200" Height="200"/>
</Border>
</Grid>
</Window>

未配置的 Grid 将在彼此之上显示元素,半透明的 Border 背景将使其余内容变暗。

关于c# - Avalonia UI 弹出窗口覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62194012/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com