2011-09-30 6 views
4

私は、テキストボックスのように沈んだボーダーを持っています。これを行う方法? controltemplateに親ボーダーを追加する方法がありますか?ボーダーコントロールを取得してボーダーボーダーを取得する

+0

あなたは例を持っていますか? TextBoxは単なる境界線を持っています。 – Ray

+0

WindowsXPのテキストボックスに、WinFormsスタイルの枠が沈んでいます。 –

+0

それは私のためではありません。しかし、私はあなたが意味するものを得ます。私はロータスノートで同じ効果を見る。 – Ray

答えて

8

ありますが使用するテーマはありませんが、あなたはこのように回避することができます。このMSDNモデル(http://i.msdn.microsoft.com/dynimg/IC84967.gif)使用

diagram of border styles

をここに私の推薦です:(沈んだインナー)

ちょうど高さ/ XAMLのこのブロックはTextBoxのように使用します。外側の境界線を代わりに使用する場合は、2つの境界タグを逆にします。あなたのために簡単にする必要があります。

<Border Width="100" Height="200" 
     BorderBrush="Gainsboro" BorderThickness="0,0,5,5"> 
    <Border BorderBrush="Gray" BorderThickness="5,5,0,0"> 
     <TextBox Text="Hello World" 
       BorderThickness="0" 
       HorizontalAlignment="Stretch" 
       VerticalAlignment="Stretch" /> 
    </Border> 
</Border> 

感謝:Style a border with a different brush color for each corner

は次のようになります。

Sample of border-style example

+0

再利用が心配なら、TextBoxを継承するUserControlは問題ありません。 –

+0

私は実際に4つのボーダーをすべて使って解決しました。私は境界線を手動で作成してはならないと思っていましたが、よく... –

+0

TextBoxからBorderThickness-Attributeを削除しましたが、それは利用できません。また、IMOでは、2つの境界要素を交換する必要があります。 WinFormsが作成するInset 3D-Borderと比較して、右上隅が間違っているようです。左下隅についてもわかりません。 – SlapY

1

あなたはあなたがが色でプレーする必要がある場合があります。この

<Border Margin="20" BorderThickness="0.5" BorderBrush="Gray"> 
    <Border BorderThickness="1,1,0,0" BorderBrush="DarkGray"> 
     <ContentPresenter /> 
    </Border> 
</Border> 

ような何かを試すことができます。

+0

私は現在のテーマから境界線を使用することを期待していました。現在のWindowsのルックアンドフィールのようなものです。 –

関連する問題