コード例 #1
0
                public static TileOrigin FromBaseObject(BaseObject baseObj)
                {
                    if (baseObj == null || baseObj.NativeObject == IntPtr.Zero)
                    {
                        return(null);
                    }
                    TileOrigin obj = baseObj as  TileOrigin;

                    if (object.Equals(obj, null))
                    {
                        obj = new TileOrigin(CreatedWhenConstruct.CWC_NotToCreate);
                        obj.BindNativeObject(baseObj.NativeObject, "CTileOrigin");
                        obj.IncreaseCast();
                    }

                    return(obj);
                }
コード例 #2
0
        public void SetImageElementToGrid()
        {
            SlideDirection   slideDirection   = TempProfile.SlideDirection.Value;
            TileOrientation  orientaition     = TempProfile.TileOrientation.Value;
            TileOrigin       origin           = TempProfile.TileOrigin.Value;
            TileImageStretch tileImageStretch = TempProfile.TileImageStretch.Value;

            int numofRow = MainGrid.RowDefinitions.Count;
            int numofCol = MainGrid.ColumnDefinitions.Count;

            // スライド方向から自動で配置を決定する場合
            if (TempProfile.UseDefaultTileOrigin.Value)
            {
                switch (slideDirection)
                {
                default:
                case SlideDirection.Left:
                    orientaition = TileOrientation.Vertical;
                    origin       = TileOrigin.TopLeft;
                    break;

                case SlideDirection.Top:
                    orientaition = TileOrientation.Horizontal;
                    origin       = TileOrigin.TopLeft;
                    break;

                case SlideDirection.Right:
                    orientaition = TileOrientation.Vertical;
                    origin       = TileOrigin.TopRight;
                    break;

                case SlideDirection.Bottom:
                    orientaition = TileOrientation.Horizontal;
                    origin       = TileOrigin.BottomRight;
                    break;
                }
            }

            Action <int, int> setToGrid = (i, j) =>
            {
                // Image
                Image image = new Image();

                if (tileImageStretch == TileImageStretch.UniformToFill)
                {
                    image.Stretch             = Stretch.UniformToFill;
                    image.HorizontalAlignment = HorizontalAlignment.Center;
                    image.VerticalAlignment   = VerticalAlignment.Center;
                }
                else if (tileImageStretch == TileImageStretch.Fill)
                {
                    image.Stretch = Stretch.Fill;
                }

                // Border
                Border border = new Border();
                border.Background = new SolidColorBrush(Colors.Transparent); // Border内部の空白をクリック時にヒットテスト可能にするため
                int tilePadding = TempProfile.TilePadding.Value;
                if (tilePadding != 0)
                {
                    border.BorderThickness = new Thickness(tilePadding + 2);
                    border.Margin          = new Thickness(-2); // これと↑の-2は隣のGridとの境目を完全に消すため
                }
                border.BorderBrush = new SolidColorBrush(TempProfile.GridLineColor.Value);
                border.Child       = image;

                // セット
                MainGrid.Children.Add(border);
                Grid.SetRow(border, i);
                Grid.SetColumn(border, j);
            };

            if (orientaition == TileOrientation.Horizontal)
            {
                switch (origin)
                {
                default:
                case TileOrigin.TopLeft:
                    for (int i = 0; i < numofRow; i++)
                    {
                        for (int j = 0; j < numofCol; j++)
                        {
                            setToGrid(i, j);
                        }
                    }
                    break;

                case TileOrigin.TopRight:
                    for (int i = 0; i < numofRow; i++)
                    {
                        for (int j = numofCol - 1; j >= 0; j--)
                        {
                            setToGrid(i, j);
                        }
                    }
                    break;

                case TileOrigin.BottomRight:
                    for (int i = numofRow - 1; i >= 0; i--)
                    {
                        for (int j = numofCol - 1; j >= 0; j--)
                        {
                            setToGrid(i, j);
                        }
                    }
                    break;

                case TileOrigin.BottomLeft:
                    for (int i = numofRow - 1; i >= 0; i--)
                    {
                        for (int j = 0; j < numofCol; j++)
                        {
                            setToGrid(i, j);
                        }
                    }
                    break;
                }
            }
            else
            {
                switch (origin)
                {
                default:
                case TileOrigin.TopLeft:
                    for (int i = 0; i < numofCol; i++)
                    {
                        for (int j = 0; j < numofRow; j++)
                        {
                            setToGrid(j, i);
                        }
                    }
                    break;

                case TileOrigin.TopRight:
                    for (int i = numofCol - 1; i >= 0; i--)
                    {
                        for (int j = 0; j < numofRow; j++)
                        {
                            setToGrid(j, i);
                        }
                    }
                    break;

                case TileOrigin.BottomRight:
                    for (int i = numofCol - 1; i >= 0; i--)
                    {
                        for (int j = numofRow - 1; j >= 0; j--)
                        {
                            setToGrid(j, i);
                        }
                    }
                    break;

                case TileOrigin.BottomLeft:
                    for (int i = 0; i < numofCol; i++)
                    {
                        for (int j = numofRow - 1; j >= 0; j--)
                        {
                            setToGrid(j, i);
                        }
                    }
                    break;
                }
            }
        }
コード例 #3
0
                public BaseObject Create()
                {
                    TileOrigin emptyInstance = new TileOrigin(CreatedWhenConstruct.CWC_NotToCreate);

                    return(emptyInstance);
                }