标签: z-order

如何使按钮不透明?

我写了自定义视图,它绘制了一个圆圈.然后我把它放在相对布局上.我也把标准按钮放在那里,以便它们重叠.我看到按钮是透明的.如何使它不透明?

在此输入图像描述

transparency android styles z-order

17
推荐指数
2
解决办法
1万
查看次数

JavaFX中的Z-Order

如何VBox在JavaFX中设置Z-order ?

java javafx z-order vbox

16
推荐指数
3
解决办法
2万
查看次数

Delphi - 如何防止Forms/MsgBox在先前的表单下移动?

很多时候,在Windows 98时代之后,我们经历过一些对话框丢失了Z-Order并返回到之前的形式.

例如:

Dialog1.ShowModal;

Dialog1.OnClickButton() : ShowMessage('anything');
Run Code Online (Sandbox Code Playgroud)

当MessageBox出现时,它有时没有焦点,并在Dialog1下移动.用户对此感到困惑,他们说:我的申请冻结了!但是如果他们使用Alt + Tab移动到另一个应用程序并返回,焦点将返回到MessageBox,它将成为前景窗口.

我们通过ShowMessage,MessageBox,普通表单以及QuickReport表单体验过这一点.

有谁知道这个?这是一个Windows bug吗?你怎么能阻止它?怎么抓住这个?

谢谢你的帮助:dd


我真的说过,在Win98之后,所有操作系统(Win7也)都会受到这个问题的影响.我们使用Delphi 6 Prof,因此属性不能使用Default表单.

有人说使用MessageBox + MB_APPLMODAL可以控制消息对话框.这是个好消息,但我们有许多旧的表单和组件,第三方工具.

因此,通过替换表单来创建一个全新的应用程序是一项艰苦的工作.

但我们会尝试这样做.

我认为答案是这是半个应用程序问题和半个Windows问题.如果Windows有时会处理此问题,有时则不会 - 这似乎是一个Windows错误.但是,如果我们可以强制制作良好的模态窗口,那么它就是编程错误.

有人可以向我解释一下WS_POPUP标志的含义是什么?它有副作用吗?

谢谢:dd

windows delphi dialog z-order delphi-6

16
推荐指数
2
解决办法
1万
查看次数

CALayer Border出现在子视图上方(Z-order相关,我认为)

我搜索过但找不到这种行为的原因.

我有一个我正在设置的UIButton图像.以下是按钮的显示方式.请注意,这只是预期按钮设计的Photoshop:

在此输入图像描述

从本质上讲,它是一个方形的自定义UIButton,带有白色边框和一点周围的阴影.在右上角,有一个"X"标记,将以编程方式添加为子视图.

以下是实际应用中按钮的屏幕截图.此时,我只添加了一个阴影和X标记作为子视图:

在此输入图像描述

当我尝试添加白色边框时,它的外观如下:

在此输入图像描述

看起来白色边框出现在X标记子图层上方.我不知道为什么.

这是我正在使用的代码:

// selectedPhotoButton is the UIButton with UIImage set earlier
// At this point, I am adding in the shadow
[selectedPhotoButton layer] setShadowColor:[[UIColor lightGrayColor] CGColor]];
[[selectedPhotoButton layer] setShadowOffset: CGSizeMake(1.0f, 1.0f)];
[[selectedPhotoButton layer] setShadowRadius:0.5f];
[[selectedPhotoButton layer] setShadowOpacity:1.0f]; 

// Now add the white border    
[[selectedPhotoButton layer] setBorderColor:[[UIColor whiteColor] CGColor]];
[[selectedPhotoButton layer] setBorderWidth:2.0];

// Now add the X mark subview
UIImage *deleteImage = [UIImage imageNamed:@"nocheck_photo.png"];
UIImageView *deleteMark = [[UIImageView alloc] initWithFrame:CGRectMake(53, -5, 27, 27)];
deleteMark.contentMode = UIViewContentModeScaleAspectFit; …
Run Code Online (Sandbox Code Playgroud)

iphone z-order calayer

15
推荐指数
2
解决办法
4261
查看次数

在openGL中,如何让项目回到前面?

默认情况下,似乎从前到后绘制对象.我正在绘制一个二维UI对象,并希望将其创建回到前面.例如,我可以先创建一个白色正方形,然后在它上面创建一个略小的黑色正方形,从而创建一个带有白色边框的黑色窗格. 这篇文章对它进行了一些讨论,并将此顺序描述为"画家的算法",但最终他们给出的例子只是以相反的顺序渲染对象以获得所需的效果.我想回到前面(第一个物体进入后面,随后的物体在上面绘制)渲染可以通过一些变换来实现(gOrtho?)?

我还要提到我对使用包装库(如GLUT)的解决方案不感兴趣.

我还发现使用Cocoa NSOpenGLView的Mac上的默认行为似乎是回到前面,而在Windows中我无法得到这种行为.我正在使用的Windows中的设置代码是这样的:

glViewport (0, 0, wd, ht);
glMatrixMode(GL_PROJECTION);           
glLoadIdentity();                      
glOrtho (0.0f, wd, ht, 0.0f, -1.0f, 1.0f);
glMatrixMode(GL_MODELVIEW);             
glLoadIdentity();                       
Run Code Online (Sandbox Code Playgroud)

opengl z-order

13
推荐指数
2
解决办法
3万
查看次数

在matplotlib中分层构图和surface_plot

我在分层和zorderpython中苦苦挣扎.我正在使用带有三个相关元素的matplotlib进行3D绘图:surface_plot一个行星的A ,一个surface_plot围绕该行星的环,以及一个contourf显示行星的阴影投射到环上的图像.

我希望图形能够精确地显示这种情况在现实生活中的样子,环绕着行星,阴影位于相应位置的环上.如果影子在给定POV的行星后面,我希望阴影被行星阻挡,反之亦然,如果阴影位于行星前面,对于给定的POV.

需要说明的是,这只是一个分层问题.我的行星,戒指和阴影都正确地绘制.但是,阴影永远不会显示在地球的前面.它就好像行星正在"阻挡"阴影,即使行星在层次方面应该位于阴影之下.

我已经尝试了我能想到的每一件事,zorder并重新排列调用各种绘图元素的顺序.环DO正确地显示在行星前面,但阴影不会.

我的实际代码很长.这里是相关部分:

绘图设置:

def setup_saturn_plot(ax3, elev, azim, drawz, drawxy,view):
    ax3.set_aspect('equal','box')
    ax3.view_init(elev=elev, azim=azim)
    if(view=="top" or view == "Top" or view == "TOP"):
        ax3.dist = 5.5
    if(view=="star" or view == "Star" or view == "STAR"):
        ax3.dist = 5.0 #4.5 is best value
    proj3d.persp_transformation = orthographic_proj

    # hide grid and background
    ax3.w_xaxis.set_pane_color((1.0, 1.0, 1.0, 1.0))
    ax3.w_yaxis.set_pane_color((1.0, 1.0, 1.0, 1.0))
    ax3.w_zaxis.set_pane_color((1.0, 1.0, 1.0, 1.0))
    ax3.grid(False)

    # hide z axis in …
Run Code Online (Sandbox Code Playgroud)

python plot matplotlib z-order contourf

13
推荐指数
1
解决办法
347
查看次数

如何在wpf中将项目带到前面?

我只是将两个网格放在一起.鉴于世界上的一个状态,我希望网格A位于顶部,给定另一个世界状态,我希望网格B位于顶部.在过去,我们可以调用grid.BringToFront(),但这不再存在,我无法找到任何方法来实现这一点.

我能想到的最好的,我需要创建自己的自定义类来允许这个功能,但这似乎是过去非常简单的过度杀手.

wpf grid z-index z-order

12
推荐指数
2
解决办法
4万
查看次数

WPF中的窗口所有者没有始终在线的行为

是否可以在Window.Owner不获取所有功能的情况下获得某些功能?

有两个窗口,窗口A和窗口B.我想这样做,以便选择任何一个将使它们在其他应用程序之上,但任何一个可以覆盖另一个.(实际上,不仅仅是两个,但它们都应该表现得相似.)

如果我将窗口B设置Owner为A,那么切换到任一窗口都会将两者都放在其他应用程序(我想要的)之前,但也会强制B始终位于A之上(我不想要).

我实际上已经有了独立于Owner/ 跟踪窗口层次结构的代码OwnedWindows,所以我可以扩展它以解决激活问题.因此,如果这简化了问题,我正在寻找的另一个答案是:

我如何实际做"当用户激活此窗口时,将一组特定窗口(应用程序中的所有其他窗口)带到我下面的Z顺序,同时保留它们相对于彼此的现有Z顺序" ?

.net wpf window owner z-order

12
推荐指数
1
解决办法
2499
查看次数

确定窗口是否在WPF中实际可见的最佳方法是什么

我正在尝试根据系统托盘应用程序中的通知图标单击来切换小窗口的显示.这很容易实现,但是当显示小窗口并且另一个应用程序获得焦点并因此在它前面移动时(z顺序)我希望切换假设现在隐藏了小窗口,即使它的可见性是仍然可见.否则,单击该图标会将windows visiblity设置为隐藏,即使它已隐藏在另一个后面.我已尝试捕获/覆盖激活和非活动方法以保持跟踪,但单击通知图标将始终导致deactive事件首先触发.使用焦点/丢失焦点的类似方法没有 因为窗口似乎认为它仍然具有焦点,即使隐藏在活动使用中的另一个应用程序窗口后面也可以工作.最后,我不得不求助于本机代码和WindowFromPoint方法,如下所示:

using System.Windows.Interop;
using System.Runtime.InteropServices;
using System.Drawing;

[DllImport("user32.dll")]
public static extern IntPtr WindowFromPoint(Point lpPoint);

public static bool IsWindowVisible(System.Windows.Window window) {
    WindowInteropHelper win = new WindowInteropHelper(window);
    int x = (int)(window.Left + (window.Width / 2));
    int y = (int)(window.Top + (window.Height / 2));
    Point p = new Point(x, y);
    return (win.Handle == WindowFromPoint(p));
}
Run Code Online (Sandbox Code Playgroud)

这将检查在所讨论的窗口中心的坐标处返回的窗口是否与所述窗口匹配.即所讨论的窗口的中心是可见的.

这似乎有点hacky,有没有更好的方法来实现相同的结果?

wpf window z-order visible

11
推荐指数
1
解决办法
4337
查看次数

Lottie 动画库 Z 排序问题

我目前正在玩适用于 Android的 AirBnB 的 Lottie,但我在LottieAnimationViewZ 排序方面遇到了问题。无论我是否将 LottieAnimationView 放在 的顶部RelativeLayout,它总是出现在布局中的所有其他元素之上,例如:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="@dimen/spacing_lrg"
    tools:context="com.myapp.SplashActivity">

    <com.airbnb.lottie.LottieAnimationView
        android:id="@+id/animation_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:lottie_fileName="test.json"/>

   <! -- Other Elements that should appear on top of the background animation -->

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

我也尝试将LottieAnimationView的高程设置为 0,但没有成功解决问题。有没有人知道如何解决这个问题,或者这只是图书馆的限制?另外,如果是限制,是什么原因造成的?

编辑:

这可能已在库更新中修复,因为此问题发生在库的早期版本中(因为这是在 2 年前发布的)。我会验证是否是这种情况,如果是这样,我会接受一些东西来关闭这篇文章。我刚刚继续前进,但这个问题又重新引起了人们的注意。

android z-order android-animation lottie-android

11
推荐指数
1
解决办法
654
查看次数