2009-03-17 20 views

risposta

32

è necessario impostare WindowStyle su WindowStyle.None, che rimuoverà il chrome, quindi è possibile consentire la trasparenza che è un attributo nell'elemento Window e impostare il colore di sfondo su trasparente. Tutto ciò può essere fatto come attributo al tag della finestra.

WindowStyle="None" 
AllowsTransparency="True" 
Background="Transparent" 

Per rendere gli angoli arrotondati, utilizzare un bordo e impostare la proprietà cornerRadius

+1

Puoi mostrare l'esempio per impostare il confine !! – Moumit

2

È inoltre necessario fare un bordo trasparente intorno alla finestra che è larga un paio di pixel, ovvero i bordi dei angoli arrotondati farsi tagliare

4

non utilizzare AllowsTransparency è lento e buggy, date un'occhiata a questo link, cercare la sezione "Office 2007 senza Aero - Oppure, siete responsabili di tutto":

https://blogs.msdn.microsoft.com/wpfsdk/2008/09/08/custom-window-chrome-in-wpf/

MODIFICA: alcune delle tecniche in questo post sono specifiche per Vista, ma la sezione "Office 2007 senza Aero" funziona su XP (e in realtà descrive quale software è stato scritto per Vista deve ricadere su XP) .

+0

Infatti. Quell'articolo ha alcuni buoni esempi. Ho usato la tecnica in esso più volte. –

+0

Il mio problema è che ho bisogno che il mio progetto sia compatibile con XP. – Shimmy

+0

Shimmy, le tecniche descritte in questa sezione sono compatibili con XP – Nir

2

può esserti d'aiuto.

<Grid DataContext="{Binding ElementName=root}"> 
    <Border Background="#90000000" Visibility="{Binding Visibility}"> 
     <Border BorderBrush="Black" BorderThickness="1" Background="AliceBlue" 
       CornerRadius="10,0,10,0" VerticalAlignment="Center" 
       HorizontalAlignment="Center"> 
      <Border.BitmapEffect> 
       <DropShadowBitmapEffect Color="Black" 
        Opacity="0.5" Direction="270" 
        ShadowDepth="0.7" /> 
      </Border.BitmapEffect> 
      <Grid Margin="10"> 
       <Grid.RowDefinitions> 
        <RowDefinition /> 
        <RowDefinition Height="Auto" /> 
       </Grid.RowDefinitions> 
       <TextBlock x:Name="MessageTextBlock" 
        Text="{Binding Message}" 
        TextWrapping="Wrap" Margin="5" /> 
       <UniformGrid Grid.Row="1" Margin="5" 
          Columns="2" HorizontalAlignment="Center" 
          VerticalAlignment="Bottom"> 
        <Button x:Name="OkButton" 
          Content="Ok" Margin="2" /> 
        <Button x:Name="CancelButton" 

          Content="Cancel" Margin="2" /> 
       </UniformGrid> 
      </Grid> 
     </Border> 
    </Border> 
</Grid>