2011-07-27 59 views
1

我正在使用路径为我编写的WPF应用程序构建自定义内容边框。我想要的是当窗口拉伸时(图2)只有路径的中间部分被拉伸,而不是整个东西(图3)。拉伸xaml路径的一部分

我的第一本能是将路径分成三部分并放入网格中。左右路径将保持固定,而中间路径将伸展。问题是,我无法弄清楚如何在整个事情中做一个中风,而不是在三条路径之间进行。

注:此图片仅供参考,实际边框较为复杂,但仍由三部分组成。

enter image description here

+0

我不明白三条路径,或者图像之间有什么不同。 –

回答

1

为什么不使用网格,三个断点?

<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> 

不知道更多关于什么需要,很难说哪一个是正确的答案。 (如果你用裁剪路径或有趣的形状做了疯狂的事情,第一个解决方案可能会更容易。)

1

我也将使用网格允许中央部分伸展。你有没有尝试在边界包装网格?因为这应该只是在网格外围而不是在单元之间创建边界刷。