2012-03-23 25 views
3

私はバックグラウンドブラシを持つStackPanelを持っていて、ひとつのボタンを含んでいます。グリッド内には、ボタンよりも幅広く含まれています。StackPanelの背景色が全幅を埋めるように伸びないのはなぜですか?

バックグラウンドは、ボタンと同じくらい広いです。ボタンのマージン付近で見ることができます。だから私はその周りに私の背景色の境界を持って、私のボタンの隣にデフォルト - グレーのこの広いバーを持つことになります。

<StackPanel Visibility="Visible" HorizontalAlignment="Right" Background="{StaticResource qtyBg}"> 
    <Button x:Name="bttnQtyEditKeys" Content="EDIT KEYPAD" Visibility="Visible" Click="bttnQtyEditKeys_Click"/> 
</StackPanel> 

境界線をラッピングし、境界線の背景ブラシを設定することで修正できました。

これはハックなので、私を苛立たせます。 StackPanelの背景を愚かではない別の方法がありますか?

+0

私は境界線を使用しないと思いますが、ここでハック – Berryl

+0

私はそれが私がこのコンポーネントは、実際に境界線を持ってしたくないことを考えると、あると思います。 –

答えて

4

問題はあなたのバックグラウンドではなく、あなたのStackPanelです。あなたの背景は問題ありません、あなたのStackPanelは空き領域を埋めるものではありません。

StackPanelでHorizo​​ntalAlignmentとVerticalAlignmentをStretchに設定する必要があります。

これが私のために正常に動作します:

<Grid> 
    <StackPanel Visibility="Visible" HorizontalAlignment="Stretch" Background="blue"> 
     <Button x:Name="bttnQtyEditKeys" HorizontalAlignment="Right" Content="EDIT KEYPAD" Visibility="Visible" Click="bttnQtyEditKeys_Click"/> 
    </StackPanel> 
</Grid> 
+0

いいえ、それは私のボタンを左に置くからです。私はそれを右にしたい。 –

+0

ボタンのHorizo​​ntalAlignmentを右に設定します。 –

+0

効果がないようです。それはまだ左にある。 –

関連する問題