0

私はWPFが初めてです。私の要件は、角丸長方形のスプラッシュ スクリーンを作成することです。私はいくつかの検索を行い、丸い長方形を達成しました。しかし、問題は、それが一部の領域で失敗することです。スクリーンショットを見て、以下のコードを確認してください。 ここに画像の説明を入力

その画像では、黒い境界線が角で壊れていることがわかります

ここに私のxamlがあります

<Window x:Class="TimeLogger.StartWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow"   Width="470" Height="270"      ShowInTaskbar="False" WindowStartupLocation="CenterScreen" 
        ResizeMode="NoResize"  WindowStyle="None" AllowsTransparency="True" Background="Transparent"  >
    <Border BorderBrush="#FF000000" BorderThickness="2,2,2,2" CornerRadius="8,8,8,8">
        <Grid Background="#012a7a"   >
            <Label Margin="-5,-7,5,7">
                <TextBlock Foreground="Black"  FontFamily="Segoe UI" FontSize="25" FontStretch="UltraExpanded" Height="71" Width="177">
                    TimeLogger
                </TextBlock>
            </Label>
        </Grid>
    </Border>
</Window>
4

3 に答える 3

1

私はあなたの問題を見ます。

Bordersは素晴らしいものです。それらは軽量で、外観を大幅に制御できます。 問題は、あなたがあなたGridBackground色を与えたのに対し、あなたはあなたにそれを与えるべきだったということBorderです。通常、グリッドはスタイルに適した要素を作成しません。特に、ここで既に境界線を使用している場合はそうです。グリッドは、単純なレイアウトから複雑なレイアウトに最適であり、場合によってはグリッドを指定するのが理にかなっていますBackgroundが、ほとんどの場合、レイアウトにのみ最適です。

これをコピーして貼り付けてください:

<Border BorderBrush="#FF000000" Background="#012a7a" BorderThickness="2,2,2,2" CornerRadius="8,8,8,8">
    <Grid>
        <Label Margin="-5,-7,5,7">
            <TextBlock Foreground="Black"  FontFamily="Segoe UI" FontSize="25" FontStretch="UltraExpanded" Height="71" Width="177">
                TimeLogger
            </TextBlock>
        </Label>
    </Grid>
</Border>
于 2012-10-17T19:13:26.043 に答える
1

境界線にコーナー半径を適用しても、境界線のコンテンツのサイズが縮小されて外接することはありません。境界線が利用可能であると言っている領域全体をまだ埋めているため、境界線の上にグリッドペイントが表示されています。修正はかなり簡単です:

  1. グリッドではなく、境界線に背景色を設定します。グリッドを透明のままにします。
  2. 境界線にパディングを適用するか、グリッドにマージンを適用して、適用されたコーナー半径の余地を残します。好きなものが得られるまで、正確な値で遊んでください。

このようなもの:

<Border 
    BorderBrush="#FF000000" 
    Background="#012a7a" 
    BorderThickness="2" 
    CornerRadius="8"
    Padding="5"
    >
    <Grid>
        <!-- In a code review, I'd question the value of negative margin on this label -->
        <Label Margin="-5,-7,5,7">
            <TextBlock Foreground="Black"  FontFamily="Segoe UI" FontSize="25" FontStretch="UltraExpanded" Height="71" Width="177">
                TimeLogger
            </TextBlock>
        </Label>
    </Grid>
</Border>
于 2012-10-17T19:14:29.473 に答える
0

Borderはコンテンツコントロールですが、TextBlockが含まれています

<Border Background="#012a7a" BorderBrush="#FF000000" Margin ="6" BorderThickness="4" CornerRadius="8,8,8,8">
    <TextBlock Foreground="Black" Margin="-5,-7,5,7" Height="71" Width="177"
               VerticalAlignment="Center" HorizontalAlignment="Center" 
               FontFamily="Segoe UI" FontSize="25" FontStretch="UltraExpanded" 
               Text="TimeLogger" />
</Border>
于 2012-10-17T19:33:43.720 に答える