我的问题很简单:
如何使用 avalonia 实现叠加弹出效果?
我的意思是我想让包含我的 UI 元素的整个面板变暗一点(尝试了不透明度属性,但它看起来不太好,并且 OpacityMask 似乎只支持“透明”作为颜色,但我如果可能的话想要半透明甚至模糊)。然后我想显示一个小弹出框。如果这是 CSS 我就可以做position: absolute;
,但是我不知道如何使用 avalonia 来做到这一点。
为了形象化我的意思,这里有一些 Windows 窗体应用程序的屏幕截图,我能够在其中实现所需的效果:
My UI without overlay effect:
My UI with overlay effect:
正如你所看到的,整个 UI 变暗了一点,而背景仍然可见(当使用 avalonia 时)Opacity
属性的效果不相同并且非常不一致,因为在给定位置上彼此重叠的面板越多,背景似乎受Opacity
看起来不太好。如果你愿意的话,我可以添加屏幕截图来说明稍后看起来有多糟糕。)
把它们加起来:
1. 如何稍微一致地使面板及其所有内容变暗(甚至模糊?),以便仅仅因为透明度表现得很奇怪,具有相同背景颜色的堆叠面板就不会变得可见?
2. avalonia相当于CSS是什么position: absolute;
这样我就可以将弹出窗口放在屏幕中间并位于其他所有内容之上?
您可以使用与 WPF 中相同的技术:
<Window>
<Grid>
<DockPanel x:Name="YourMainContentGoesHere"/>
<Border IsVisible="{Binding IsPopupVisible}" Background="#40000000">
<YourPopupControlHere Width="200" Height="200"/>
</Border>
</Grid>
</Window>
未配置Grid
将显示元素在彼此之上,半透明Border
的背景将使其余内容变暗。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)