我正在尝试创建一个填充了水平线或垂直线的矩形。 矩形的宽度是动态的,所以我不能使用图像画笔。 如果有人知道任何解决方案,请让我知道。WPF填充水平线或垂直线的矩形
5
A
回答
11
我想出了一个简单的方法,最后,我用下面的视觉刷资源来填充矩形水平,垂直或垂直虚线分别
<!--for horizontal lines-->
<VisualBrush
x:Key="HorizontalLines"
TileMode="Tile" Viewport="0,0,4,4"
ViewportUnits="Absolute" Viewbox="0,0,10,10"
ViewboxUnits="Absolute">
<VisualBrush.Visual>
<Canvas>
<Path Stroke="Black" Data="M 0 10 l 10 0" />
</Canvas>
</VisualBrush.Visual>
</VisualBrush>
<!--For vertical lines-->
<VisualBrush
x:Key="VerticalLines"
TileMode="Tile" Viewport="0,0,4,4"
ViewportUnits="Absolute" Viewbox="0,0,10,10"
ViewboxUnits="Absolute">
<VisualBrush.Visual>
<Canvas >
<Path Stroke="Black" Data="M 0 0 l 0 10" />
</Canvas>
</VisualBrush.Visual>
</VisualBrush>
<!--For dotted vertical lines-->
<VisualBrush
x:Key="DottedVerticalLinesWithFill"
TileMode="Tile" Viewport="0,0,10,10"
ViewportUnits="Absolute" Viewbox="0,0,10,10"
ViewboxUnits="Absolute">
<VisualBrush.Visual>
<Canvas>
<Path Stroke="Purple" Data="M 0 5l 0 -10" />
</Canvas>
</VisualBrush.Visual>
</VisualBrush>
0
您是否尝试过使用TileBrush?
0
ImageBrush
派生自TileBrush
因此您可以使用Viewport
属性重复图像。一个例子见this MSDN page。
+0
我无法想象这将如何工作,基本TileMode本身并不适合我这里是一个代码片段...
6
您可以轻松地用一个LinearGradientBrush做到这一点:
<Rectangle Width="100" Height="100">
<Rectangle.Fill>
<LinearGradientBrush SpreadMethod="Reflect" StartPoint="0 0" EndPoint="0 0.05">
<GradientStop Offset="0.5" Color="Black"/>
<GradientStop Offset="0.5" Color="White"/>
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
您控制线的厚度和方向与端点属性。
+0
此方法仅适用于固定尺寸的形状(上例为100x100矩形)。如果形状可以伸展,那么破折号的大小也会伸展。这通常不是你想要的。 – 2017-07-31 12:19:45
相关问题
- 1. WPF水平列表框垂直填充
- 2. 水平线填充
- 3. 使用垂直数据的填充柄获得水平线
- 4. 水平垂直只有线
- 5. 砌体垂直填充前水平
- 6. 在iOS中使用触摸绘制水平线或垂直线
- 7. 用于水平/垂直线的FabricJs targetFindTolerance
- 8. 直线,但不一定是水平线或垂直线,在HTML中
- 9. WPF中水平垂直WrapPanel
- 10. 绘制单点线图上的虚线垂直和水平线
- 11. 计数水平和垂直线图像
- 12. 查找回文以2D矩阵(水平,垂直,对角线)
- 13. 将垂直线添加到堆叠的水平条形图
- 14. 搜索矩阵对角线,垂直和水平形成一个点
- 15. 延长chart.js水平条形图以包括一条垂直线
- 16. 如何聆听Anychart垂直或水平线上的事件?
- 17. 垂直和水平线的线圆交点
- 18. 创建垂直居中水平线填充宽度的标题与填充在CSS
- 19. 获取矩形垂直堆叠到水平,但保持形状
- 20. WPF线性填充
- 21. JTable中没有水平线和垂直线
- 22. 将antdesign垂直时间线修改为水平时间线
- 23. 在Mathematica中绘制水平线和垂直线
- 24. div中的虚线/圆形垂直线
- 25. 用php和mysql填充水平和垂直的表格
- 26. 水平ListView内部的UserControl无法垂直填充父项
- 27. 如何水平或垂直平铺多个wpf窗口?
- 28. 水平的形式,而不是垂直
- 29. 如何在canvas中使用javascript垂直线段(线可以是垂直或水平)?
- 30. 有没有什么方法可以在矩形中显示水平或垂直线
纠正我,如果我错了,你是说我应该使用ImageDrawing和DrawingBrush TILEMODE设置为“砖” ? – Pravin 2010-05-20 15:44:44
将拉伸设置为填充,否则无法使用,因为它将始终使用图像的默认尺寸。 – 2010-05-20 18:31:02