我正在使用路径为我编写的WPF应用程序构建自定义内容边框。我想要的是当窗口拉伸时(图2)只有路径的中间部分被拉伸,而不是整个东西(图3)。拉伸xaml路径的一部分
我的第一本能是将路径分成三部分并放入网格中。左右路径将保持固定,而中间路径将伸展。问题是,我无法弄清楚如何在整个事情中做一个中风,而不是在三条路径之间进行。
注:此图片仅供参考,实际边框较为复杂,但仍由三部分组成。
我正在使用路径为我编写的WPF应用程序构建自定义内容边框。我想要的是当窗口拉伸时(图2)只有路径的中间部分被拉伸,而不是整个东西(图3)。拉伸xaml路径的一部分
我的第一本能是将路径分成三部分并放入网格中。左右路径将保持固定,而中间路径将伸展。问题是,我无法弄清楚如何在整个事情中做一个中风,而不是在三条路径之间进行。
注:此图片仅供参考,实际边框较为复杂,但仍由三部分组成。
为什么不使用网格,三个断点?
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Border Background="Blue" Grid.Column="0" MinWidth="50" CornerRadius="10,0,0,10" BorderBrush="LimeGreen" BorderThickness="2,2,0,2"/>
<Border Background="Red" Grid.Column="1" BorderBrush="LimeGreen" BorderThickness="0,2"/>
<Border Background="Blue" Grid.Column="2" MinWidth="50" CornerRadius="0,10,10,00" BorderThickness="0,2,2,2" BorderBrush="LimeGreen"/>
</Grid>
或者你可以换一个边界网格:
<Border CornerRadius="10" BorderThickness="1" Background="Blue" BorderBrush="Red">
<Grid Background="Green" Margin="20,0"/>
</Border>
不知道更多关于什么需要,很难说哪一个是正确的答案。 (如果你用裁剪路径或有趣的形状做了疯狂的事情,第一个解决方案可能会更容易。)
我也将使用网格允许中央部分伸展。你有没有尝试在边界包装网格?因为这应该只是在网格外围而不是在单元之间创建边界刷。
路径语法规定笔画终点是否连接回起始点。如果路径数据以“Z”结尾,则结束连接到开始。
如果在左侧和右侧单元的路径数据末尾有“Z”,则尝试删除“Z”。
见参考文献: http://msdn.microsoft.com/en-us/library/cc189041(v=vs.95).aspx#closecommand
我不明白三条路径,或者图像之间有什么不同。 –