Stavo cercando di creare una finestra senza bordi con WindowStyle="None"
ma quando l'ho testata, sembra che appaia una barra bianca in alto, dopo alcune ricerche sembra essere un "Ridimensiona bordo", ecco un'immagine (ho notato in giallo):
Dopo alcune ricerche su Internet e molte soluzioni difficili non xaml, tutte le soluzioni che ho trovato erano codice dietro in C # e molte righe di codice, ho trovato indirettamente la soluzione qui: La finestra personalizzata massima perde l'effetto ombra esterna
<WindowChrome.WindowChrome>
<WindowChrome
CaptionHeight="0"
ResizeBorderThickness="5" />
</WindowChrome.WindowChrome>
Nota : è necessario utilizzare il framework .NET 4.5 o, se si utilizza una versione precedente, utilizzare WPFShell, fare riferimento alla shell e utilizzare Shell:WindowChrome.WindowChrome
invece.
Ho usato la WindowChrome
proprietà Finestra, se la usi quel "bordo di ridimensionamento" bianco scompare, ma devi definire alcune proprietà per funzionare correttamente.
CaptionHeight: questa è l'altezza dell'area della didascalia (barra dell'intestazione) che consente lo snap Aero, facendo doppio clic sul comportamento di una normale barra del titolo. Impostalo su 0 (zero) per far funzionare i pulsanti.
ResizeBorderThickness: Questo è lo spessore sul bordo della finestra che è dove puoi ridimensionare la finestra. Metto a 5 perché mi piace quel numero e perché se metti zero è difficile ridimensionare la finestra.
Dopo aver utilizzato questo codice breve il risultato è questo:
E ora, il bordo bianco è scomparso senza utilizzare ResizeMode="NoResize"
e AllowsTransparency="True"
, mostra anche un'ombra nella finestra.
Più avanti spiegherò come far funzionare i pulsanti (non ho usato immagini per i pulsanti) facilmente con un codice semplice e breve, sono nuovo e penso di poter postare in codeproject, perché qui non ho trovato il posto per pubblicare il tutorial.
Forse c'è un'altra soluzione (so che ci sono soluzioni difficili e difficili per i niubbi come me) ma funziona per i miei progetti personali.
Ecco il codice completo
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Concursos"
mc:Ignorable="d"
Title="Concuros" Height="350" Width="525"
WindowStyle="None"
WindowState="Normal"
ResizeMode="CanResize"
>
<WindowChrome.WindowChrome>
<WindowChrome
CaptionHeight="0"
ResizeBorderThickness="5" />
</WindowChrome.WindowChrome>
<Grid>
<Rectangle Fill="#D53736" HorizontalAlignment="Stretch" Height="35" VerticalAlignment="Top" PreviewMouseDown="Rectangle_PreviewMouseDown" />
<Button x:Name="Btnclose" Content="r" HorizontalAlignment="Right" VerticalAlignment="Top" Width="35" Height="35" Style="{StaticResource TempBTNclose}"/>
<Button x:Name="Btnmax" Content="2" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,0,35,0" Width="35" Height="35" Style="{StaticResource TempBTNclose}"/>
<Button x:Name="Btnmin" Content="0" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,0,70,0" Width="35" Height="35" Style="{StaticResource TempBTNclose}"/>
</Grid>
Grazie!