Estaba intentando crear una ventana sin bordes con WindowStyle="None"
pero cuando la probé, parece que aparece una barra blanca en la parte superior, después de investigar un poco parece ser un "Borde de cambio de tamaño", aquí hay una imagen (comenté en amarillo):
Después de investigar un poco en Internet y muchas soluciones difíciles que no son xaml, todas las soluciones que encontré eran código subyacente en C # y muchas líneas de código, encontré indirectamente la solución aquí: La ventana personalizada máxima pierde el efecto de sombra paralela
<WindowChrome.WindowChrome>
<WindowChrome
CaptionHeight="0"
ResizeBorderThickness="5" />
</WindowChrome.WindowChrome>
Nota : Necesita usar .NET 4.5 framework, o si está usando una versión anterior use WPFShell, simplemente haga referencia al shell y use Shell:WindowChrome.WindowChrome
en su lugar.
Usé la WindowChrome
propiedad de Window, si usas esto, ese "borde de cambio de tamaño" blanco desaparece, pero necesitas definir algunas propiedades para que funcione correctamente.
CaptionHeight: esta es la altura del área de subtítulos (barra de encabezado) que permite el ajuste Aero, el comportamiento de doble clic como lo hace una barra de título normal. Establezca esto en 0 (cero) para que los botones funcionen.
ResizeBorderThickness: este es el grosor en el borde de la ventana, que es donde puede cambiar el tamaño de la ventana. Puse 5 porque me gusta ese número, y porque si pones cero es difícil cambiar el tamaño de la ventana.
Después de usar este código corto, el resultado es este:
Y ahora, el borde blanco desapareció sin usar ResizeMode="NoResize"
y AllowsTransparency="True"
, además, muestra una sombra en la ventana.
Más adelante explicaré cómo hacer que funcionen los botones (no usé imágenes para los botones) fácilmente con código simple y corto, soy nuevo y creo que puedo publicar en codeproject, porque aquí no encontré el lugar para publicar el tutorial.
Tal vez haya otra solución (sé que hay soluciones difíciles y difíciles para novatos como yo) pero esto funciona para mis proyectos personales.
Aquí está el código 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>
¡Gracias!