WPFの単純な(私は思う)水平線?


228

比較的単純なデータ入力フォームを作成し、特定のセクションを(HTMLのHRタグとは異なり)フォームの全長に渡る水平線で区切るだけです。

私はこれを試しました:

<Line Stretch="Fill" Stroke="Black" X2="1"/>

親コントロールは固定幅ではないため、この線によりウィンドウが画面の全幅に拡大されます。

親のコントロール/ウィンドウの幅を固定せずにこれを行う簡単な方法はありますか?


3
答えは[ここ] [1]です。私はmletterleの答えを好みます。[1]:stackoverflow.com/questions/4011571/…– 2009
スタック

回答:


522

これをxamlに追加してみてください。

<Separator/>

9
素晴らしいソリューションと1つのタグ!

7
これがどのように解決するのかわかりません。セパレータを追加しましたが、線が表示されません。グリッドなどの標準のレイアウトパネル内にセパレーターを配置して水平方向の罫線のように表示するには、どのような構成が必要ですか?
jpierson 2013年

同意します。これは一部のコントロールでは機能しないようです
Justin Pihony 2013

12
@jpiersonグリッドに追加する場合は、他のコントロールと同様に、行と列に割り当てる必要があります。そうしないと、おそらく最初の行/列に表示され、見落とすことになります。(StackPanelで正常に動作します。)
ANeves 2013年

5
<Separator/>スクリーンリーダーによって読み上げられることに注意してください。<Separator/>UIで項目のグループを実際に分離するために使用される場合、これは完全なソリューションです。ラインの使用が純粋に審美的な理由である場合、<Line/>またはを使用することをお勧めし<Rectangle/>ます。
Simon Rozman、

77

同じ問題があり、最終的には四角形要素を使用することにしました。

<Rectangle HorizontalAlignment="Stretch" Fill="Blue" Height="4"/>

私の意見では、セパレーターよりも変更/整形がやや簡単です。もちろん、これSeparatorは単純な分離のための非常に簡単できちんとしたソリューションです:)


2
Silverlight 5ではSeperator機能しますが、機能しません。
ΩmegaMan

14

高さ1のボーダーを使用し、幅を設定しないでください(つまり、幅=自動、水平方向の調整=ストレッチ、デフォルト)。


2
とにかく垂直セパレーターに便利です:<Border Width="1" Margin="2" Background="#8888"/>
Qwertie '29

8

これに苦労している他の人のために:Qwertieのコメントは私にとってうまくいきました。

<Border Width="1" Margin="2" Background="#8888"/>

これにより、ニーズに合わせて調整できる垂直セパレーターが作成されます。


3
To draw Horizontal 
************************    
<Rectangle  HorizontalAlignment="Stretch"  VerticalAlignment="Center" Fill="DarkCyan" Height="4"/>

To draw vertical 
*******************
 <Rectangle  HorizontalAlignment="Stretch" VerticalAlignment="Center" Fill="DarkCyan" Height="4" Width="Auto" >
        <Rectangle.RenderTransform>
            <TransformGroup>
                <ScaleTransform/>
                <SkewTransform/>
                <RotateTransform Angle="90"/>
                <TranslateTransform/>
            </TransformGroup>
        </Rectangle.RenderTransform>
    </Rectangle>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.