0

以下の例では、LinearGradientBrushにより、境界線が少し斜めに見えます。境界線は幅全体に引き伸ばされていますが、高さは平均的なツールバーと同じです。境界線のテキストブロックテキストは、バーの上にあるように見えます。テキストをバーの上ではなく、バーの上に表示する方法があるかどうか知りたいです。どんな方向にも感謝します。

<Border HorizontalAlignment="Stretch" VerticalAlignment="Top" BorderThickness="1" CornerRadius="0" BorderBrush="SlateGray">
    <Border.Background>
        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
            <GradientStop Color="DimGray" Offset="0" />
            <GradientStop Color="Black" Offset="0.5" />
            <GradientStop Color="Gray" Offset="1" />
        </LinearGradientBrush>
    </Border.Background>
    <TextBlock Text="Check for updates" Foreground="AliceBlue" FontWeight="Bold"/>
</Border>
4

2 に答える 2

1

何を探しているのかよくわかりませんが、背景ブラシの修正版をオーバーレイし、テキスト自体にグラデーションを使用することで、より埋め込みやすくする2つの方法がありますが、境界線の内側が湾曲しているかのように明るくなります.

<Border HorizontalAlignment="Stretch" VerticalAlignment="Top" BorderThickness="1" CornerRadius="0" BorderBrush="SlateGray">
    <Border.Background>
        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
            <GradientStop Color="DimGray" Offset="0" />
            <GradientStop Color="Black" Offset="0.5" />
            <GradientStop Color="Gray" Offset="1" />
        </LinearGradientBrush>
    </Border.Background>
    <Grid>
        <TextBlock Text="Check for updates" FontWeight="Bold">
            <TextBlock.Foreground>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="DimGray" Offset="0" />
                    <GradientStop Color="AliceBlue" Offset="0.5" />
                    <GradientStop Color="White" Offset="1" />
                </LinearGradientBrush>
            </TextBlock.Foreground>
        </TextBlock>
        <Border>
            <Border.Background>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0" Opacity="0.5">
                    <GradientStop Color="DimGray" Offset="0" />
                    <GradientStop Color="Transparent" Offset="0.5" />
                    <GradientStop Color="Gray" Offset="1" />
                </LinearGradientBrush>
            </Border.Background>
        </Border>
    </Grid>
</Border>

スクリーンショット

于 2011-05-05T21:51:05.930 に答える
1

そのような名前付き効果を WPF で使用する必要があります。ここにそれらのライブラリがありますhttp://wpffx.codeplex.com/、エンボス効果が役立つ場合があります。

于 2011-05-05T21:16:55.343 に答える