形状、画刷和变换
Contents
Sharp类
Shape类的属性
名称 | 说明 |
---|---|
Fill | 设置绘制形状表面(边框内的鄋内容)的画刷对象 |
Stroke | 设置绘制形状边缘(边框)的画刷对象 |
StrokeThickness | 用设备无关单位设置边框宽度,可以使用SnapsToDevicePixels属性去掉该效果 |
StrokeStartLineCap和StrokeEndLineCap | 决定直线开始端和结束端边缘的轮廓 |
StrokeDashArray和StrokeDashOffset和StrokeDashCap | 用于在形状周围创建的电话线边框,可控制电话线的尺寸和频率,以及每条电话线开始端和结束端边缘的轮廓 |
StrokeLineJoin和StrokeMiterLimit | 确定性转拐角的轮廓,对于没有拐角的形状,如line和Ellipse,这些属性不起作用 |
Stretch | 确定形状如何填充可用区域。可使用该属性创建能够扩展以适合其容器的形状。还可为HorizontalAlignment或VerticalAlignment属性使用Stretch值强制形状在某个方向上扩展 |
DefiningGeometry | 为形状提供Geometry对象。Geometry对象描述了形状的坐标和尺寸 |
GeometryTransform | 可通过该属性应用Transform对象,改变用于绘制形状的坐标系统,从而可以扭曲、旋转或移动形状。当为图形应用东花市,变换特别有用 |
RenderedGeometry | 提供描述最终的、已渲染好的图形的Geometry对象 |
矩形和椭圆
如果为设置Stroke或Fill属性,形状就根本不会显示
改变形状的尺寸和放置形状
如果为提供Height和Width属性,形状会根据他们的容器来设置自身的尺寸。
Stretch枚举值
名称 | 说明 |
---|---|
Fill | 形状拉伸其宽度和高度,从而可以正好适应其容器(如果设置了明确的高度和宽度,该设置就不起作用 |
None | 形状不被拉伸。除非使用Height和Width属性将形状的宽度和高度设置为非0值,否则不会显示形状 |
Uniform | 按比例改变形状的宽度和高度,直至形状到达容器边缘。如果为椭圆使用改制,最终得到适应窗口的最大元,如果为矩形使用改制,将得到尽可能大的正方形 |
UniformToFill | 按比例改变形状的宽度和高度,直到形状填满了整个可用空间的高度和宽度。 |
使用Viewbox控件缩放形状
Viewbox是景城子Decorator的简单类,该类只接收一个子元素,并拉伸或缩小子元素以适应可用的空间,当然,这个单一的子元素可以使布局容器,其中可以包含大量形状(或其他元素)。这些元素将同步的改变尺寸。然而,Viewbox更常用与矢量图像而不是普通控件。
直线
<Line Stroke="Blue" X1="0",Y1="0" X2="10" Y2="100"></Line>
折线
<Polyline Stroke="Blue" Points="5 100 15 200"></Polyline>
多边形
多边形Polygon和Polyline是相同的,唯一的区别是Polygon形状添加最后一条线段,将最有一个点链接到开始的点。可使用Fill填充该形状的内部区域
直线线帽和直线交点
当绘制Line和Polyline形状是,可使用StartLineCap和EndLineCap属性选择如何绘制直线的开始端和结束端。
点划线
<Polyline Stroke="Blue" StrokeThickness="14" StrokeDashArray="1 2" Points="10,30 60,0 90,40 120,10 350,10"></Polyline>
这条点划线的实线段长度为1,空白长度为2
像素对齐
SnapsToDevicePixels设置为True