代码之家  ›  专栏  ›  技术社区  ›  Jason

WPF圆角背景渗透

  •  7
  • Jason  · 技术社区  · 17 年前

    我是第一次尝试WPF——我有一个简单的表单,其中定义了一个用于内联帮助的弹出窗口。我用的是圆角,由于某种原因,一个黑色的背景从拐角处渗出。我不明白是哪种因素导致了这个问题。

    alt text 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>
    
    2 回复  |  直到 17 年前
        1
  •  26
  •   Bubblewrap    17 年前

    我认为是弹出窗口导致了问题。尝试在弹出窗口中将AllowTransparency设置为True。

    Popup.AllowsTransparency

    设置为False时,任何透明颜色都会与黑色“合并”。

        2
  •  0
  •   ifyadig    12 年前

    您还可以将弹出窗口包装在具有圆角的边框中。如果您无法更改弹出窗口的AllowTransparency,这将非常有用。

    大概是这样的:

    <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>