Ejemplo n.º 1
0
        //削除
        public async Task Delete(PostItItem item)
        {
            item.DeleteFlg = true;
            await _client.GetTable <PostItItem>().UpdateAsync(item);

            Items.Remove(item);
        }
Ejemplo n.º 2
0
        //挿入
        public async Task Insert(PostItItem item)
        {
            try {
                await _client.GetTable <PostItItem>().InsertAsync(item);

                Items.Insert(0, item);
            } catch (MobileServiceInvalidOperationException e) {
                //ERROR
            }
        }
Ejemplo n.º 3
0
        public void Insert(int index, PostItItem item)
        {
            var postItView = new PostItView(item, PostItWidth);

            postItView.HorizontalOptions = LayoutOptions.Start;
            postItView.LongTap          += i => {
                if (LongTap != null)
                {
                    LongTap(i);
                }
            };
            _layout.Children.Insert(index, postItView);


            //Androidの場合、Delayがないとスクロールできない?
            Task.Delay(1).ContinueWith(t => Device.BeginInvokeOnMainThread(() => {
                //一番下までスクロール
                //View.Position = new Point(0, View.ContentSize.Height - View.Bounds.Height);
                //一番上までスクロール
                View.Position = new Point(0, 0);
            }));
        }
Ejemplo n.º 4
0
        public PostItView(PostItItem item, int width)
        {
            _item = item;

            var absoluteLayout = new AbsoluteLayout();

            var margin = width / 50;

            //フォントのサイズが基準値となる
            var       fontSize = width / 20; //フォントサイズ
            const int shadow   = 5;          //影の幅

            //文字が表示できる幅の計算
            var col = width - margin * 2 - fontSize;
            //必要行数
            var row    = (item.Text.Length * fontSize) / col + 1;
            var height = (int)((row + 2) * (fontSize * 1.2) + margin * 2) + fontSize / 2;

            //影(塗りつぶし)の描画
            var color       = Color.FromRgba(0, 0, 0, 0.2);
            var turnedColor = Color.FromRgba(0, 0, 0, 0);//全透過
            var shadowBox   = new PostItBox(width - margin * 2, height - margin * 2, color, turnedColor);

            absoluteLayout.Children.Add(shadowBox, new Point(margin + shadow, margin + shadow));

            //本体(塗りつぶし)の描画
            color       = Color.FromRgb(255, 200, 200);
            turnedColor = Color.FromRgb(255, 220, 220);
            var postItBox = new PostItBox(width - margin * 2, height - margin * 2, color, turnedColor);

            absoluteLayout.Children.Add(postItBox, new Point(margin, margin));
            //ラベル(本文)の描画
            var labelText = new Label {
                Text         = item.Text,
                Font         = Font.SystemFontOfSize(fontSize),
                TextColor    = Color.Black,
                WidthRequest = col,
            };

            absoluteLayout.Children.Add(labelText, new Point(fontSize / 2 + margin, fontSize / 2 + margin));

            //ラベル(日付)の描画
            var labelDate = new Label {
                Text         = string.Format("CreateAt {0}", item.CreateAt.ToString("g")),
                Font         = Font.SystemFontOfSize(fontSize * 0.7),
                TextColor    = Color.Black,
                WidthRequest = col,
            };

            absoluteLayout.Children.Add(labelDate, new Point(fontSize / 2 + margin, height - margin - fontSize * 1.5));


            //透過ボタン(長押しを取得するため透明のボタンを置く)
            var exButton = new ExButton {
                WidthRequest  = width,
                HeightRequest = height,
            };

            absoluteLayout.Children.Add(exButton, new Point(0, 0));
            exButton.LongTap += (sender, args) => {
                if (LongTap != null)
                {
                    LongTap(_item);
                }
            };

            Content = absoluteLayout;
        }