2011-07-27 10 views
1

私はパスを使って、WPFで書かれた私のアプリケーション用のカスタムコンテンツボーダーを構築しています。私が欲しいのは、ウィンドウが(図2)の代わりに、全部(図3)引き伸ばされたときにのみ、パスの中間部分が伸び持つことです。xamlパスの一部を伸ばす

私の最初の本能は、パスを3つの部分に分割し、それらをグリッドに配置することでした。左と右のパスは固定されたままで、途中のパスは伸びます。問題は、3つのパスの間に行かなくても、ストロークを全体の周りに配置する方法を理解できないことです。

注:この画像は参考情報です。実際の枠はより複雑ですが、まだ3つの部分から構成されています。私はまた、中央部分はストレッチできるようにするためにグリッドを使用することになり

enter image description here

+0

私は3つのパス、あるいはどのような違いが画像の間では理解していません。 –

答えて

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と言うのは難しいです。 (あなたはパスや面白い形をクリッピングしてクレイジーなものをやっている場合は、最初のソリューションは、より簡単かもしれません。)

1

。あなたは境界線でグリッドをラップしようとしましたか?これは、セルの間ではなく、グリッドの外側の周りに境界ブラシを作成する必要があるだけです。ストロークの終点が始点に戻って接続する場合

0

パス構文が指示します。パスデータが "Z"で終わる場合、終わりは開始に接続されます。

あなたは左と右のセルのためのあなたのパスデータの末尾に「Z」を持っている場合は、「Z」を削除してみてください。 3つのボーダーでグリッドを使用しないのはなぜ http://msdn.microsoft.com/en-us/library/cc189041(v=vs.95).aspx#closecommand

関連する問題