Ich habe versucht, ein randloses Fenster mit zu erstellen, WindowStyle="None"
aber als ich es getestet habe, scheint oben ein weißer Balken zu erscheinen. Nach einigen Recherchen scheint es sich um einen "Rand der Größe ändern" zu handeln. Hier ist ein Bild (ich habe es gelb bemerkt):
Nach einigen Recherchen über das Internet und vielen schwierigen Nicht-XAML-Lösungen, allen Lösungen, die ich gefunden habe, war Code hinter C # und vielen Codezeilen, habe ich hier indirekt die Lösung gefunden: Maximales benutzerdefiniertes Fenster verliert Schlagschatteneffekt
<WindowChrome.WindowChrome>
<WindowChrome
CaptionHeight="0"
ResizeBorderThickness="5" />
</WindowChrome.WindowChrome>
Hinweis : Sie müssen das .NET 4.5-Framework verwenden. Wenn Sie eine ältere Version verwenden, verwenden Sie WPFShell. Verweisen Sie einfach auf die Shell und verwenden Sie Shell:WindowChrome.WindowChrome
stattdessen.
Ich habe die WindowChrome
Eigenschaft von Window verwendet. Wenn Sie diese Eigenschaft verwenden, verschwindet der weiße "Größenänderungsrand", aber Sie müssen einige Eigenschaften definieren, um korrekt zu funktionieren.
CaptionHeight: Dies ist die Höhe des Beschriftungsbereichs (Kopfleiste), die das Aero-Snap-Doppelklickverhalten wie bei einer normalen Titelleiste ermöglicht. Setzen Sie diesen Wert auf 0 (Null), damit die Tasten funktionieren.
ResizeBorderThickness: Dies ist die Dicke am Rand des Fensters, an der Sie die Größe des Fensters ändern können. Ich setze auf 5, weil ich diese Zahl mag und weil es schwierig ist, die Fenstergröße zu ändern, wenn man Null setzt.
Nach Verwendung dieses Funktionscodes ist das Ergebnis:
Und jetzt verschwand der weiße Rand ohne Verwendung ResizeMode="NoResize"
und AllowsTransparency="True"
zeigt auch einen Schatten im Fenster.
Später werde ich erklären, wie man die Schaltflächen (ich habe keine Bilder für die Schaltflächen verwendet) einfach mit einfachem und kurzem Code bearbeitet. Ich bin neu und denke, dass ich in Codeprojekt posten kann, weil ich hier den Ort nicht gefunden habe um das Tutorial zu posten.
Vielleicht gibt es eine andere Lösung (ich weiß, dass es harte und schwierige Lösungen für Noobs wie mich gibt), aber dies funktioniert für meine persönlichen Projekte.
Hier ist der vollständige Code
<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>
Danke dir!