WPF绘制网格线
? ? ? 新的軟件要繪制網格,像VISIO一樣的底紋便于繪圖時對齊,在WinForm下,在Paint事件中通過計算通過Graphics在畫布上一條線一條線地畫就行了,顯然會慢點,而且代碼比較多。
在WPF中,可以更簡單,通過繪制適量直線不會方便而且可以提高性能,可以創建一個Group,然后將所有的直線添加到該組,然后通過RenderTransform或LayoutTransform根據縮放比例進行縮放即可;還有一種更簡單的方法就是使用ImageBrush.例:
private DrawingBrush _gridBrush;private void docCanvas_Loaded(object sender, RoutedEventArgs e){if (_gridBrush == null) {_gridBrush = new DrawingBrush( new GeometryDrawing(new SolidColorBrush(Colors.White),new Pen(new SolidColorBrush(Colors.LightGray), 1.0),new RectangleGeometry(new Rect(0, 0, 20, 20))));_gridBrush.Stretch = Stretch.None;_gridBrush.TileMode = TileMode.Tile;_gridBrush.Viewport = new Rect(0.0, 0.0, 20, 20);_gridBrush.ViewportUnits = BrushMappingMode.Absolute;docCanvas.Background = _gridBrush;}}其實就是用一個個的小矩形將背景的網格給拼出來。總結
- 上一篇: 高速公路收费该取消
- 下一篇: 第11课 无线电报机