This content is in the parent
Box should switch between perspective and flat

First dump layer tree:

Second dump layer tree:
(GraphicsLayer
  (anchor 0.00 0.00)
  (bounds 800.00 600.00)
  (children 1
    (GraphicsLayer
      (bounds 800.00 600.00)
      (contentsOpaque 1)
      (children 1
        (GraphicsLayer
          (position 8.00 8.00)
          (bounds 342.00 292.00)
          (drawsContent 1)
          (children 1
            (GraphicsLayer
              (position 31.00 39.00)
              (bounds 250.00 220.00)
              (contentsOpaque 1)
              (children 1
                (GraphicsLayer
                  (position 10.00 10.00)
                  (bounds 200.00 200.00)
                  (contentsOpaque 1)
                  (transform [0.87 0.50 0.00 0.00] [-0.50 0.87 0.00 0.00] [0.00 0.00 1.00 0.00] [0.00 0.00 0.00 1.00])
                  (children 1
                    (GraphicsLayer
                      (position 100.00 0.00)
                      (bounds 250.00 100.00)
                      (contentsOpaque 1)
                      (drawsContent 1)
                      (transform [0.50 0.00 -0.87 0.00] [0.00 1.00 0.00 0.00] [0.87 0.00 0.50 -0.00] [-30.00 30.00 100.00 0.75])
                    )
                  )
                )
              )
            )
          )
        )
      )
    )
  )
)

Third dump layer tree:

