TileBrush.Viewbox 属性

定义

获取或设置 TileBrush 图块中内容的位置和尺寸。

public:
 property System::Windows::Rect Viewbox { System::Windows::Rect get(); void set(System::Windows::Rect value); };
public System.Windows.Rect Viewbox { get; set; }
member this.Viewbox : System.Windows.Rect with get, set
Public Property Viewbox As Rect

属性值

Rect

TileBrush 内容的位置和尺寸。 默认值为矩形 (Rect),其 TopLeft 为 (0,0),WidthHeight 为 1。

示例

可以使用属性指定内容Viewbox的大小和位置TileBrush。 该 ViewboxUnits 属性确定该值是 Viewbox 相对于内容的边界 TileBrush ,还是它是绝对值。

第一个插图显示 100 x 100 像素的图像,然后使用此图像显示不同 Viewbox 属性设置的效果。

图像
起始示例图像 (100 到 100 个独立于设备的像素)

下图显示了使用 Viewbox 0.0,0.0,0.25,0.5 的输出TileBrush。 其他相关属性值包括:

此图显示了多个不同的 Stretch 属性设置。 该 Stretch 属性确定 TileBrush 其拉伸 Viewbox 方式以填充其 Viewport

Viewbox 为 0,0 0.25,0.5 的 TileBrush
TileBrush,相对视图框为 0.0,0.0,0.25,0.5

下图显示了一个类似的 TileBrush ,但相对 Viewbox 为 0.5,0.25,0.25,0.5。

Viewbox 为 0.5,0.25 0.25,0.5 的 TileBrush
类似的 TileBrush,但具有不同的 Viewbox 设置

下图显示相同 TileBrush ,但相对 Viewport 值为 0.0,0.0,0.5,0.5 和 a TileMode Tile

Viewbox 为 0.5,0.25 0.25,0.5 的 TiledTileBrush
类似的 TileBrush,但具有平铺和不同的视区设置

以下示例演示如何创建具有 Viewbox 0.5,0.25、0.25、0.25,0.5 的平铺TileBrush

<Rectangle
 Width="100" Height="100">
  <Rectangle.Fill>
    <ImageBrush 
      ImageSource="sampleImages\testImage.gif"
      Viewbox="0.5,0.25, 0.25,0.5" 
      ViewboxUnits="RelativeToBoundingBox" 
      Viewport="0,0,0.5,0.5"
      ViewportUnits="RelativeToBoundingBox" 
      TileMode="Tile" 
      Stretch="Fill" 
      AlignmentX="Center"
      AlignmentY="Center"/>
  </Rectangle.Fill>
</Rectangle>
// Create a rectangle.
Rectangle myRectangle = new Rectangle();
myRectangle.Width = 100;
myRectangle.Height = 100;

// Load the image.
BitmapImage theImage = 
    new BitmapImage(
        new Uri("sampleImages\\testImage.gif", UriKind.Relative));   
ImageBrush myImageBrush = new ImageBrush(theImage);

myImageBrush.Viewbox = new Rect(0.5, 0.25, 0.25, 0.5);
myImageBrush.ViewboxUnits = BrushMappingMode.RelativeToBoundingBox;
myImageBrush.Viewport = new Rect(0,0,0.25,0.25);
myImageBrush.ViewportUnits = BrushMappingMode.RelativeToBoundingBox;
myImageBrush.TileMode = TileMode.Tile;
myImageBrush.Stretch = Stretch.Fill;
myImageBrush.AlignmentX = AlignmentX.Center;
myImageBrush.AlignmentY = AlignmentY.Center;

// Use the ImageBrush to paint the rectangle's background.
myRectangle.Fill = myImageBrush;
' Create a rectangle.
Dim myRectangle As New Rectangle()
myRectangle.Width = 100
myRectangle.Height = 100

' Load the image.
Dim theImage As New BitmapImage(New Uri("sampleImages\testImage.gif", UriKind.Relative))
Dim myImageBrush As New ImageBrush(theImage)
With myImageBrush
    .Viewbox = New Rect(0.5, 0.25, 0.25, 0.5)
    .ViewboxUnits = BrushMappingMode.RelativeToBoundingBox
    .Viewport = New Rect(0, 0, 0.25, 0.25)
    .ViewportUnits = BrushMappingMode.RelativeToBoundingBox
    .TileMode = TileMode.Tile
    .Stretch = Stretch.Fill
    .AlignmentX = AlignmentX.Center
    .AlignmentY = AlignmentY.Center
End With

' Use the ImageBrush to paint the rectangle's background.
myRectangle.Fill = myImageBrush

注解

使用 a 绘制区域时,将使用三个 TileBrush组件:内容、磁贴和输出区域。 该 Viewbox 属性指定内容的大小和位置 TileBrush 。 下图显示了这三 TileBrush 个组件如何相互关联。

TileBrush 组成部分
TileBrush 组件

已平铺的 TileBrush 组件

ViewboxUnits 属性确定该值是解释为相对值还是 Viewbox 绝对值。 默认情况下,ViewboxUnits 属性设置为 RelativeToBoundingBox

Viewbox 剪辑

TileBrush内容从不剪裁到 。Viewbox 但是, TileBrush 内容被剪 裁到 Viewport边缘,用于设置基图块的值。

下图显示了不同Stretch设置对小于ViewboxViewport大小的不同设置TileBrush的影响。 图像外部 Viewbox 的部分显示为灰色。

具有不同拉伸设置的 TileBrush
具有不同拉伸设置的 TileBrush

依赖项属性信息

标识符字段 ViewboxProperty
元数据属性设置为 true

适用于

另请参阅