|
1
14
你能在.net/c中这样做吗? 是的,你当然可以,但需要一点努力。我建议采用以下方法。创建一个没有边框或标题栏区域的顶级窗体,然后通过将transparencykey和backcolor设置为相同的值来确保它没有绘制工作区背景。所以你现在有一个什么也画不出来的窗口…
在窗体的工作区上创建并定位此深色区域窗口。然后,您需要能够显示窗口而不占用焦点,因此您将需要以以下方式显示平台调用,而不使其变为活动的…
您需要使它实际绘制一些内容,但不在要保持高亮显示的控件区域中绘制。所以重写onpaint处理程序,用黑色/蓝色或任何你想要的颜色绘制,但不包括你想保持明亮的区域…
最后,您需要覆盖wndproc,以防止鼠标与窗口交互,如果用户尝试了一些疯狂的事情,如单击暗区。像这样的…
这应该足以达到预期的效果。当你准备好逆转效果的时候,你会处理暗黑女星实例并继续。 |
|
|
2
8
这是一个非常酷的主意-我可能会用它,所以谢谢。不管怎样,我的解决方案很简单…在当前窗体上打开一个新的50%不透明窗体,然后自定义绘制该窗体的背景图像,矩形与要突出显示的控件的边界匹配,并填充透明键的颜色。 在我的粗略样本中,我称这种形式为“lbform”,它的肉是这样的:
fuchia是这个半不透明表单的透明键,因此您可以看到绘制的矩形,并与主表单边界内的任何内容交互。 在我尝试这个的实验项目中,我使用了一个动态添加到表单中的用户控件,但是您可以同样轻松地使用表单上已经存在的控件。在主窗体(您正在隐藏的窗体)中,我将相关代码放入一个按钮中单击:
如果你喜欢的话,你可以用自己的方式来做一些基本的事情,但是它只是添加了usercontrol,然后在主窗体上设置lightbox表单,并设置bounds属性来在正确的地方呈现完全透明。在我的快速示例中,诸如窗体拖动和关闭lightbox窗体和usercontrol之类的操作不会被处理。哦,别忘了处理图形实例-我也忘了(太晚了,我真的很累了)。 |
|
|
3
1
大的调光矩形很好。 另一种方法是:
滚你自己的基础表单类说
打电话给
这有一个优点,即正常的win32窗体功能将继续工作,例如当您单击窗体的一个模式对话框时,该窗体的任务栏闪烁,或者mouseover/mousedown事件的管理仍将正常工作等。 如果你想要矩形调暗的样式,你可以把逻辑放在mylightboxawareform中 |
|
4
1
表单本身具有属性
|
|
|
5
1
另一个不涉及使用新表单的解决方案:
现在密码… 假设我有一个名为frame的用户控件,我想对它应用lightbox效果:
使用这种技术的优点是:
缺点主要是这项技术要慢得多,因为必须处理整个图像才能使用ColorMatrix校正每个像素点。 |
|
|
6
0
每个窗体都有“不透明度”属性。将其设置为50%(或代码中的0.5),这样将是半透明的。移除边框,并在要聚焦的窗体之前将其最大化。您可以更改窗体的背景色,甚至可以为不同的效果设置背景图像。 |
|
|
FranticFronk · Tkinter单选按钮在已选择时执行命令 1 年前 |
|
|
Kumkuatte · 如何将UI元素对齐到Unity中的左侧位置 1 年前 |
|
|
Calax · GUI不显示所有组件(C++) 1 年前 |
|
|
trassert · python flet容器 1 年前 |
|
|
zadisk8 · 带有Q拆分器和多级选项卡的PyQt5 1 年前 |
|
|
Patrick Visi · Zitadel日常创建服务用户 2 年前 |