コード例 #1
0
        /// <summary>
        /// Adds a layer to the scene.
        /// </summary>
        /// <param name="layerRoot">The root visual of the layer.</param>
        /// <returns>The created layer.</returns>
        public SceneLayer Add(IVisual layerRoot)
        {
            Contract.Requires <ArgumentNullException>(layerRoot != null);

            var distance = layerRoot.CalculateDistanceFromAncestor(_root);
            var layer    = new SceneLayer(layerRoot, distance);
            var insert   = FindInsertIndex(layer);

            _index.Add(layerRoot, layer);
            _inner.Insert(insert, layer);
            return(layer);
        }
コード例 #2
0
ファイル: SceneLayers.cs プロジェクト: soosr/Avalonia
        /// <summary>
        /// Adds a layer to the scene.
        /// </summary>
        /// <param name="layerRoot">The root visual of the layer.</param>
        /// <returns>The created layer.</returns>
        public SceneLayer Add(IVisual layerRoot)
        {
            _ = layerRoot ?? throw new ArgumentNullException(nameof(layerRoot));

            var distance = layerRoot.CalculateDistanceFromAncestor(_root);
            var layer    = new SceneLayer(layerRoot, distance);
            var insert   = FindInsertIndex(layer);

            _index.Add(layerRoot, layer);
            _inner.Insert(insert, layer);
            return(layer);
        }