2009-01-23 17 views
7

Robię mój pierwszy wypad do WPF - Mam prosty formularz z wyskakującym okienka dla pomocy wbudowanej. Używam zaokrąglonych rogów iz jakiegoś powodu czarne tło krwawi w rogach. Nie rozumiem, który element powoduje problem.Tło zaokrąglone narożniki WPF krwawiące przez

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

Przypuszczam, że to coś oślepiająco oczywiste, które ja po prostu nie widzi. Oto XAML, którego używam:

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

Odpowiedz

24

Myślę, że to Popup jest przyczyną problemu. Spróbuj ustawić wartość AllowsTransparency na True w wyskakującym okienku.

Popup.AllowsTransparency

Kiedy ustawiona na False, wszelkie przejrzyste kolory są "połączone" z czernią.

+0

że zrobił to, dzięki! – Jason

0

Możesz również zawinąć wyskakujące okienko w ramkę z zaokrąglonymi narożnikami. Jest to użyteczne, jeśli nie można zmienić ustawienia AllowsTransparency na popup.

coś takiego:

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