/// <summary>
 /// チーム詳細表示用コントロールの設定
 /// </summary>
 /// <param name="iControl">コントロール</param>
 public void SetTeamDisplay(TeamDisplay iControl)
 {
     mTeamDisplayControl = iControl;
 }
示例#2
0
        /// <summary>
        /// スクリーンショットを撮る準備(チーム画像をスクリーンショットグリッドに入れておく)
        /// </summary>
        public void BeginScreenShot()
        {
            //必要なコントロールを作成
            var control_List = new List <TeamDisplay>();
            var manager      = BattleOperatorManager.GetInstance();
            var team_Val     = manager.GetTeamVal();

            foreach (var iTeamIndex in System.Linq.Enumerable.Range(0, team_Val))
            {
                var team_Info = manager.GetTeamInfo(iTeamIndex);
                var list      = new List <BattleManager.SBattleJoinInfo>();
                foreach (var iJoinMemberID in team_Info.mJoinIDList)
                {
                    var info = new BattleManager.SBattleJoinInfo();
                    manager.GetJoinInfo(ref info, iJoinMemberID);
                    list.Add(info);
                }

                var control = new TeamDisplay();
                control.TeamNameTextBlock.Text = team_Info.mTeamName;
                control.SetJoinMemberList(list);
                control_List.Add(control);
            }

            //正方形にできるだけなるように敷き詰める数を取得
            var val = 1;

            while (true)
            {
                var check = Math.Pow(2, (double)val);
                if (team_Val < check)
                {
                    break;
                }
                ++val;
            }

            //グリッドに挿入
            var margin     = new Thickness();
            var grid       = SystemManager.GetInstance().GetScreenShotGrid();
            var sum_Height = 0.0;

            while (control_List.Count > 0)
            {
                //横方向への挿入
                margin.Left = 0;
                var max_Height = 0.0;
                var sum_Width  = 0.0;
                foreach (var iIndex in System.Linq.Enumerable.Range(0, val))
                {
                    var control = control_List[0];
                    control.Margin = margin;
                    grid.Children.Add(control);

                    //横へずらす
                    margin.Left += control.Width;
                    sum_Width   += control.Width;

                    //縦の最大サイズ取得
                    if (max_Height < control.Height)
                    {
                        max_Height = control.Height;
                    }

                    //先頭を削除して無くなったら終わり
                    control_List.RemoveAt(0);
                    if (control_List.Count == 0)
                    {
                        break;
                    }
                }

                //横方向へサイズ変更チェック
                if (grid.Width < sum_Width)
                {
                    grid.Width = sum_Width;
                }

                //縦移動
                margin.Top += max_Height;
                sum_Height += max_Height;
            }

            //縦方向へサイズ変更チェック
            if (grid.Height < sum_Height)
            {
                grid.Height = sum_Height;
            }
        }