Фон WPF с закругленными углами истекает кровью

Я делаю свой первый набег на WPF - у меня есть простая форма с всплывающим окном, определенным для встроенной справки. Я использую закругленные углы, и по какой-то причине черный фон просачивается по углам. Я не понимаю, какой элемент вызывает проблему.

http://www.awbrey.net/rounded.jpg

Я предполагаю, что это что-то ослепительно очевидное, чего я просто не вижу. Вот XAML, который я использую:

<Window x:Class="Consent.Client.SubjectNumberEntry"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" FontSize="24"
    Title="SubjectNumberEntry" WindowStyle="None" WindowState="Maximized"
        xmlns:h="clr-namespace:Consent.Client" KeyDown="windowOuter_KeyDown" Background="White" Name="windowOuter" AllowsTransparency="true" Loaded="Window_Loaded">

    <StackPanel Height="400" DockPanel.Dock="Top" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="10">
        <StackPanel Height="60" Orientation="Horizontal" VerticalAlignment="Center">
            <TextBox Name="txtSubjectNumber" Margin="10" Width="400" KeyDown="txtSubjectNumber_KeyDown" h:HelpProvider.HelpString="Enter the subject identifier, or scan their wristband">
                <TextBox.ToolTip>This is a textbox</TextBox.ToolTip>
            </TextBox>
            <Button Name="btnEnter" Margin="10" Width="100" Click="btnEnter_Click">Enter</Button>
            <Button Width="50" Name="btnHelp" Margin="10" Click="btnHelp_Click">?</Button>
            <Button Width="50" Name="btnExit" Margin="10" Click="btnExit_Click">Exit</Button>


        </StackPanel>
        <Label Name="lblValue" Margin="10"></Label>


        <Popup Placement="Bottom" HorizontalAlignment="Center" VerticalOffset="10" MouseDown="popHelp_MouseDown" PopupAnimation="Fade" Name="popHelp" PlacementTarget="{Binding ElementName=txtSubjectNumber}">
            <Border Padding="10" Margin="10" BorderBrush="CornflowerBlue" BorderThickness="1" CornerRadius="10" Background="CornflowerBlue">
                <TextBlock FontSize="12" Background="CornflowerBlue">This is the content of the help box.</TextBlock>
            </Border>
        </Popup>

    </StackPanel>


</Window>

person Jason    schedule 23.01.2009    source источник


Ответы (2)


Я думаю, что это всплывающее окно вызывает проблему. Попробуйте установить для AllowsTransparency значение True во всплывающем окне.

Popup.AllowsTransparency

Если установлено значение False, любые прозрачные цвета «сливаются» с черным.

person Bubblewrap    schedule 23.01.2009

Вы также можете обернуть всплывающее окно рамкой с закругленными углами. Это полезно, если вы не можете изменить AllowsTransparency всплывающего окна.

Что-то вроде этого:

<Border CornerRadius="10">
    <Popup Placement="Bottom" HorizontalAlignment="Center" VerticalOffset="10" MouseDown="popHelp_MouseDown" PopupAnimation="Fade" Name="popHelp" PlacementTarget="{Binding ElementName=txtSubjectNumber}">
        <Border Padding="10" Margin="10" BorderBrush="CornflowerBlue" BorderThickness="1" CornerRadius="10" Background="CornflowerBlue">
            <TextBlock FontSize="12" Background="CornflowerBlue">This is the content of the help box.</TextBlock>
        </Border>
    </Popup>
</Border>
person ifyadig    schedule 24.07.2014