图形绘制、数据查询与绑定技术详解
1. 平铺画笔的视口和视框
在平铺画笔的概念中,视口(Viewports)和视框(Viewboxes)是两个容易混淆的概念。简单来说,视框定义了用于填充区域的画笔内容部分,而视口则定义了用画笔的一个图块填充的输出区域部分。
以ViewportsAndViewboxes示例程序为例,该程序展示了视口和视框的作用。在图中左侧,较亮的区域表示由属性值Viewbox = 0.5,0,0.5,0.5定义的视框,这些数字分别代表画笔内容用于绘制的左、上、宽和高。在这个例子中,坐标是相对的,左上角为(0, 0),右下角为(1, 1)。
图中间展示了一个视口为0,0,0.25,0.5并填充为白色的矩形,这些值同样表示区域的左、上、宽和高,也是相对坐标。
图右侧展示了结果,左侧视框定义的区域会被拉伸以填充中间定义的视口,然后将该结果进行平铺以填充整个矩形。以下是绘制最终矩形的代码:
<Rectangle Width="100" Height="75" Stroke="Black"> <Rectangle.Fill> <ImageBrush ImageSource="Smiley.bmp" Stretch="Fill" TileMode="Tile" AlignmentX="Left" AlignmentY="Top" Vi