为什么正文中的按钮与我的 NavigationView 工具栏中的按钮行为不同?

Why is the button in the body behaving differently than the button in my NavigationView toolbar?

我不太明白为什么会出现以下按钮:

Button { } label: {
    Image(systemName: "globe")
         .resizable()
         .scaledToFill()
}
.frame(width: size, height: size)
.border(.yellow)

bodyNavigationView 中表现不同? 为什么 NavigationView 中的那个没有填满整个画面?

struct ContentView: View {
    let size = 45.0
    let fontSize = 17.0
    
    var body: some View {
        NavigationView {
            Button { } label: {
                Image(systemName: "globe")
                    .resizable()
                    .scaledToFill()
            }
            .frame(width: size, height: size)
            .border(.yellow)
            .toolbar {
                HStack(alignment: .top) {
                    
                    Button { } label: {
                        Image(systemName: "globe")
                            .resizable()
                            .scaledToFill()
                    }
                    .frame(width: size, height: size)
                    .border(.red)
                    
                    // Image and Title
                    VStack {
                        Image("nemo")
                            .resizable()
                            .scaledToFit()
                            .frame(height: size)
                        Text("Navigation Title")
                            .font(.system(size: fontSize))
                            .bold()
                    }.border(.green)
                }
                //.frame(maxWidth: .infinity)
            }
        }
    }
}

这是工具栏默认按钮的设计,我们可以用自定义的代替,比如

    Button { print(">> action here")} label: {
        Image(systemName: "globe")
            .resizable()
            .scaledToFill()
    }
    .buttonStyle(MyTabbarButtonStyle())
    .frame(width: size, height: size)
    .border(.red)

// and style (tune colours as you want)
struct MyTabbarButtonStyle: ButtonStyle {
    func makeBody(configuration: Configuration) -> some View {
        configuration.label
            .foregroundColor(configuration.isPressed ? .gray : .blue)
    }
}