Panel:Center()未使Derma框架居中

时间:2019-06-24 18:28:30

标签: garrys-mod

我创建了一个Derma Frame,当我在该Frame上调用Center()时,它没有正确地居中显示在屏幕上。

屏幕截图:

1]

代码如下:

local ply = LocalPlayer()

hook.Add("OnPlayerChat", "Link:lnotify:OnPlayerChat", function(ply, text, teamChat, isDead)
    if(ply:IsSuperAdmin()) then
        if (text == "!lnotify") then
            local lnotifyAdminMenu = vgui.Create("DFrame")
            lnotifyAdminMenu:Center()
            lnotifyAdminMenu:SetSize(1000, 720)
            lnotifyAdminMenu:ShowCloseButton(true)
            lnotifyAdminMenu:MakePopup()
        end
    else
        Derma_Message("You're not permitted to use this menu", "Access Denied", "OK")
    end
end)

2 个答案:

答案 0 :(得分:0)

:Center()函数确实将帧的开始位置设置在屏幕快照中可以看到的中间位置。我不确定,但是我认为没有任何功能可以自动将框架居中。

答案 1 :(得分:0)

我与Discord的一些成员进行了交谈。感谢Discord上的XXenix#2334解决了这个问题。

这实际上是很合逻辑的。在我的代码中,在设置大小之前,我正在使用:Center()函数。当帧为0px x 0px时,GLua会设置帧的位置,然后在游戏设置大小后,左上角将位于中心位置。

我希望这可以帮助其他使用GLua的新手。

相关问题