Domanda

Sto cercando di arrotondare gli angoli di una finestra (WPF) e non funziona, ho cercato di rendere trasparente la finestra stessa e di aggiungere un bordo interno con angoli arrotondati e non funziona.

Qualche idea?

È stato utile?

Soluzione

devi impostare WindowStyle su WindowStyle.None, che rimuoverà il chrome, quindi puoi consentire la trasparenza che è un attributo nell'elemento Window e impostare il colore di sfondo su trasparente. Tutto ciò può essere fatto come attributi del tag window.

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

Per arrotondare gli angoli, usa un bordo e imposta la proprietà cornerRadius

Altri suggerimenti

Non utilizzare AllowsTransparency è lento e pieno di errori, dai un'occhiata a questo link, cerca la sezione "Office 2007 senza Aero & # 8211; Oppure, sei responsabile di tutto " ;:

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

EDIT: alcune delle tecniche in questo post sono specifiche di Vista, ma "Office 2007 senza Aero" sezione funziona su XP (e in realtà descrive a quale software scritto per Vista deve ricorrere su XP).

Devi anche creare un bordo trasparente attorno alla finestra largo alcuni pixel, altrimenti i bordi degli angoli arrotondati vengono tagliati

può aiutarti.

<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>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top