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); }
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; } } }
public BaseObject Create() { TileOrigin emptyInstance = new TileOrigin(CreatedWhenConstruct.CWC_NotToCreate); return(emptyInstance); }